:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:.:::.:...:...............................................................................................................................................................................................................................      .          .                                                                                                                                                                                                                                                                                                        .     .                            ...............:-+*=-.     .:::.  ........:-------------------:.....::::..::::--==-----------:................   ..       ........                    ....:-------------:.  ::                                                                    .:.                        ...... ...............................................................................................:---:...........................................:+%*-.::::::::.:::::.::::::::::.::.:.......::....:.::.:::::::...:::...::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::----------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::.:.:...........................................................................................................................................................................................................................................  .                                                                                                                                                                                                                                                                                                                         .              .     . .      .:..........-+**=:.      .::::. .......::-------------------::::----:.......:------------::................    ..       .......                      ....:-------------:. .=:                                                                    .::                  . .   ....................... .................................................................................:--::.........................................:+%#=:::::::..::::..:::::::::::::::.:..::.:..:.:.:.:.:.:::::...:..:::...:..:.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:---:----------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::..:......................................................................................................................................................................................................................................  ..  . .    .                                                                                                                                                                                                                                                                                                                 ..    .   .  .....    .     ....:..... .-+##+-.        .::::. .......::------------=======-::--::.  ......:-----------::........  .......    ..       .......                       ....:-------------:. .=:                                                                     .-.                   .  ........ ...................... .............................................................................:--:.........................................=#%+::::::..:..:.:::::::::::::::..:..:::..:...::.:::::.:::..::.::.:..:::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::....::.:......................................................................................................................................................................................................................................      ..      .                                                                                                                                                                                                                                                                                                                 . .   ... .. . ..    .....:.::...-+##*=.         .::-::. .......::--------==========-:.::....  .....:-----------::.........  ......     ..        ......                        ....--------------:. .=:                                                                      :-.                      ....... ...................... ................................................................................:--:.......................................:*%#=:::::::::::::::::::::::::::...::::....:::::::.:::::....::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----:-------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::.::..........................................................................................................................................................................................................................  ..........   . .                                                                                                                                                                                                                                                                                                                .       .. .  . .. ... .... ........ .-+#%#=:          .::--::. . .....::-----========-----::.:..... ......:----------::..........  ......    ...        .....                         .....--------------:. :=.                                                                      .=:                .      ............      ... ...........................................................................................:-::......................................=#%*-::::::::::::::::::::::::::..:.::...::...:::::::::::.....::.:::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:..:...:............................................................................................................................................................................................................................... ....     ...                                                                                                                                                                                                                                                                                                                       . .  .......... .  ......  .:+#@%+:.          .:::::::.   ....::--======------------:....... .....:----------:............  .....   . ...        .....                          ... .--------------:  :+.                                                                      .--.                   ..................::.   ..............................................................................................:::::....................................:+%%*-.:.:::::::::::::::::::::::..:..:..:.::::.:::::::.:...:.:..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:::::..::...............................................................................................................................................................................................................................  .        .                                                                                                                                                                                                                                                                                                                      .   . ...... . .. .... .    :+#@%*-.           .::::::::.   ..::::-------------------:..............:----------:...........  ......   .....        .....                           ... .--------------:  :+.                                                                       .=:   .               ...................:--:.  ...............................................................................................::::....................................:+%%*-::::::::::::::::::::::::.::.::.:::::::::::::.::.::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::...::........................................................................................................................................................................................................................  .........    . ..           .                                                                                                                                                                                                                                                                                                 .  ..   ...   ... .  ......        :+#@%*-.            .::::.::::..   ....::------------------:............::-----------:...........  .....   ......         ....                            ..  .--------------.  :=.                                                                       .--.      .           .................   .:-=:.    ...... .......................................................................................::::...................................:+%%*=:::::::::::::::::::::::::::::::::::::::::::::::::.:::::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::::-------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::.::.::........................................................................................................................................................................................................................ ...........  .   .  .                                                                                                                                                                                                                                                                                                         . . .   .   .......... .         :=#%%*-.             .::::..::::.    ....:-------------------:....... ...:::----------:............  .....   ......         ....      .                      ..  .-------------:.  .=:                                                                        :=.          .       ....................   :==:...............................................................................:::..................:::...................................:+#%#=::::::::::::::::::::::::::::::::::::::::::::.::::::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-::------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..::::.::::.:....:............................................................................................................................................................................................................................   .      .                                                                                                                                                                                                                                                                                                         . .  ...... .......           :=#%%*=.              ..::..  .:::..    ...:-----::------------:.........::..:----------:............  ....    ......         ....      ..                      .   .:------------:.  .=:                                                                        .=-. .                ......................  :==::. ..................................................................:::::.......::::................:::..................................:=#%%+-:::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::-------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:.:::.......:......................................................................................................................................................................................................................... ..      .      ..   .                                                                                                                                                                                                                                                                                                   . .. .............          :=#%%*=.               ..::..   .:::..    ...:----:::------------:.............:----------:............  ....    ...:..         ...        .                      ..   .:------------:.  .=:                                                                         :=.               .  . ...................... .-==-:........................................................................::::......::::....................................................-*%%#=::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::..:.............................................................................................................................................................................................................................   . . ..    ..                                                                                                                                                                                                                                                                                                         .....   ....  ......      .-+#%%*=:                .....     .:::..    ...::--:::-------------:. ..........::----------:............  ....    ..::..          ..        ..                      .     :------------:.  .=:                                                                         .=:                    .................... ... .-+=:. ..........................................................................:::......::::..................................................:+#@%+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:..:........................................................................................................................................................................................................................... .. .......   ..          .                                                                                                                                                                                                                                                                                            .    .... .. ........    .:=*%%#+-.            :=-  .....      .:::..     ..:::::::-------------:......  ....::---------::...........   ...     .:::..          ..        ..       .               .     .:-----------:.  .=:                                                                         .==.            ..   ...........................  :=+-. .............................................................................:::......:::.................................................:=*%%#=:::::::::::::::::::::::::::::::::::::::::::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::..:.:....:..........................................................................................................................................................................................................................                                                                                                                                                                                                                                                                                                               .... ..............  .:=*#%%*=:.          ..::=**:....        .:::..     ..:::::::-------------:.....   ....::-::------:............   ...     .:::..          ..        ...                       .     .:----------:.   .-:                                                                         .:=.       .    .  ......... ..................... .-*+: .................................................................................::.....:::.................................................:+#@%*=::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:....:..............................................................................................................................................................................................................................  .  .                                                                                                                                                                                                                                                                                                        . ...................::=*#%%*=:.       ..:-=+++++*#*-...         .:::..     ..::::.::-------=-----:.....  .....:::::------:............  ...     ..:::..           .        ...                               .----------:.    --                                                                          .+:     ...   ..       ............................ :+*- .....................................................................................:.....::.................................................-*%@#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..::...................................................................................................................................................................................................................................      .. .                                                                                                                                                                                                                                                                                                     ....... ..... .-=*#%%*=:.    .:-=+**##***+-::=#*-.            .::.       .:::::::----=====----:. ...  .....:::..:-----:...........   ...  .  ..::::.                    ....  .   .                        .:---------:.    :-.                                                                         .==.            .................................... .=*=. ............................................................................................:.................................................:=*%%#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-::--------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::::.::.:.....:......:.................................................................................................................................................................................................. ............  ....   .                                                                                                                                                                                                                                                                                                        . ......... .:=+#%#*=:    :-+*##%##*+=-:::::.:+#*:             .::..      .::.:::::--====------:. ..   ....::::..:----::... .......    ..  .  .:::::.           .        ..:.  .   .                          .---------:.    :-.                                                                          :+.   ..      ... .................................. .-*+. ..............................................................................................:.................................................:=#%@#+=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::..:................................................................................................................................................................................................................. .... ......  ..  .  .   ..                                                                                                                                                                                                                                                                                                     ...... ..-+*##*=:   .-+#%%%#*=-::......::::=#%=.             .::..      .:..::::-=====-------:. ..   ....:::...:----::..  .......     .  .  .:::::.           .        ..::.  .  ..                          .:--------:.    .-.                                                                          .+:   .      ...    ..  .............................. :+*: ................................................................................................:.................................................:=*%@%*=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::.::.........................................................................................................................................................................................................................    .. . .  ....    .                                                                                                                                                                                                                                                                                                   ... .:-+##*=:.  :=*#%%#*+-::....:::::::::-*%*-              .::.      ......::--==----------:. .    ....::....:--=--..   ......          . .:-:::.                    ..::.. .   .                            :-------::     .-.                                                                          .=-.       .   ........................................ .=*- ....................................................................................................................................................:=*%@%*+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::----------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::...........................................................................................................................................................................................................................  . .  ...                                                                                                                                                                                                                                                                                                         .   .:=*##+-.  :=*%@%#*=:....::::.:::.:...-+%%=.              .::..     .....:::--------------:. .    ....:.....:-==-:..   ......     .    ...:--::.                     .:::. .   ..                            .:------::     .-.                                                                          .-=.             .     .... ............................. -*=. ..........................................................................................................................................::.........:-+#%%#+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::................................................................................................................................................................................................................. .. .... ........                                                                                                                                                                                                                                                                                                              .:=+**=:. .-*%@%#+-:.   .::::.:::::::..:=#%*:                .:..     ....:::::::-----------:. .    ..........:-==-:.    ......          ...:--::.                     .::::...  ...                            .::-----:.      ::                                                                           :+:       .      .   .................................... :*+. .....................................................................................................................................:-----:............-+#%%#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:................................................................................................................................................................................................................... .......  ... .  ...   .                                                                                                                                                                                                                                                                                                   .-++=-. .:+#%%#+-:.......:::::::::::.:..-#%#-.                .:..     ..::....:::-----------:       ..........:==-::.    ......     .    ..::--::.                     .::::...   ..                              .::----:.      ::                                                                           .+-                ... ................................... :++: ......................::............................................................................................................:-*+=:................:=*%%#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::...:...................................................................................................................................................................................................................... . .... ......                                                                                                                                                                                                                                                                                                   .:-:. .-+#%#*=:...:..:.::::::.:::::::.:-+%%+.                 .:..   ..::..  ..:::-----------:      ...........:==-::.    .....            .:---::.                     .:::::...  ...                               .::--::.      .:                                                                           .==..          .    ................. ..................... .=*: ......................::.............................................................................................................-+*=:..................:=*%%#+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:--:----------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:................................................................................................................................................................................................................   ..  ..   ..... ...                                                                                                                                                                                                                                                                                                      .-+*#*=:........::::.::::..:.:::..:+%%*:                  .... .......   ..::::----------:      ...........:==-::.    .....    . .     .:----:.               ..    .::::::... ...                                .::::::.      .:.                                                                          .-+..     ..   .  . .................  .......................=*-.......................:-.............................................................................................................:=#*-....................:=*%@#*-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:-------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.....:..................................................................................................................................................................................................................  .    .. . .......                .                                                                                                                                                                                                                                                                                  .:=**+-.   ......::.:::..:::::::::.:=#@#-                   ...........    ...:.:---------:..     ... .......-=-::.     .....           .::----::.              :-.   .::::::... ....               ..                .:::::.      .:.                                                                           :+.      .      .  ...........................................=*=.......................:-..............................................................................................................-*#+:.....................:=*%@%*=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:---:-:-----------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:.::........................................................................................................................................................................................................................... ..  ....  .                                                                                                                                                                                                                                                                                              .   .:-++=:.   ........::::..:....::.::.:=#@#=.                   ....     ..     ..:.:---------:..     ..   ......-=-::.     .....     .      :-----::.  ..          .-:    .::::::... ....               ::                 .::::..      ..                                                                           .+:    ...            .........................................-*=. .....................:-:.............................................................................................................:+#*-.......................:=*%@%*=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::..:.........................................................................................................................................................................................................................   ..  ..                                                                                                                                                                                                                                                                                                .:-=-:.  . ............:....::...:...=#@%=.                     ...     .      ..:.:---------:...    .    ......-=-::.     ....      .     .:-----::.  .:.          --    .::--:::.. ....               .-.                 ..:::..      ..                                                                           .+-.         .... ..  ..........................................-*+:......................:=..............................................................................................................:=##=--:.................:....:=*%@%*=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:.:......................................................................................................................................................................................................................... ..                                                                                                                                                                                                                                                                                                  .::::. .. ...............::::..:.:...-*@%=.                      ...             .:.::--------:...         .....:=-:::.     ....       .    .:------:.   ::          .=.   .::---::........               :-.                  ..::...     ..                                     .                                     .==.        ..  ...  ..................... ......................:++:......................:=...............................................................................................................=#%#**+=::................:....:=*%@%*-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:..::.................................................................................................................................................................................................................... .......    ..                                                                                                                                                                                                                                                                                      .  . ...... .................:..:::.:..:..-#@%=.   ..                  ...             ...::--------:...         .....:=-:::.      ...       .    .:------:.   :-.         .=-   .::----::.......                -:                    ..:. .      ..                                    .                                     .-+.     .  .  . ................................................ :+*-......................-=...............................................................................................................-*%*=+##*+=-:...............:....:=*%@%+-:.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::::.:::::..:.......................................................................................................................................................................................................................... ..  .   .           .                                                                                                                                                                                                                                                                              .   ......................:.:::..:=#@#=.    .--.                 ..             ....::-------:....         ....:=-:::.      ...       .    .:------:.   .-.          :=.   .:-----::.......               .=:                    ..:.  .     ..                                  . .                                      -+.     .  .     .  ..... .........................................=*=......................-=...............................................................................................................:*%*-:-=+*##*+=-:.......:..:.::....:=*%@#+-:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...::......:..........................................................................................................................................................................................................  .......   .       .                                                                                                                                                                                                                                                                                      ..  ...... ......................:+%@#-.     .=*=.                ..             .....:-------:....         ....:=-:::.      ..        ..   .:------:.    --          .=:   .::-----::.......               .=.                     ...   .                                        ...                                      :+:     .  ..     ..  ..............................................=*=......................=-...............................................................................................................:+%#-::::-=+*###*+=-::........::::...:=#%%*=::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::.:::.:...........................................................................................................................................................................................................................  ..        .                                                                                                                                                                                                                                                                                    ............................-*%@*-.     .-*%*:                ..             .....:-------:....         ....:=-::..      ..         .   .:------::.   .=.          -=.  .::------:.......                :=.      ::             ...                                            ...                                      :+: .       .     ...................................................-*+:.....................=-................................................................................................................=%%=::::::::-=+*####*+=--:......:::...-+#%#+-:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::......................................................................................................................................................................................................... ......................           ..                                                                                                                                                                                                                                                                            .  ... ... . .................-*@%+:     .:+*###-                ..              ....::------:.....        .....=-.:..      ..         . . .:-------:.    --          :+.  .::-------:.......                -=.     .-:              ..    .                                       ...                                      .+-     . . .   .  ......................... .........................-*+:....................:+:................................................................................................................=%%+::::::::::::-==+*#####*+=-::.......:-+*#*=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::::....................................................................................................................................................................................................... ........................       .                                                                                                                                                                                                                                                                             .. . . .... ... ...........  .=#@%+:     :=*%#++*=.               ..              .....:------:.....        .....=-.:.       ..         ..  .:-------:.    .=.         .=-   .:-------::......                .=-      :=.              ..     .                                      ...                                      .+-     . .     . .....................................................-++:....................-=:................................................................................................................-#@*-::::::::::::::::--=+*##%%#**==-::....-=++=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::.:.......:........................................................................................................................................................................................................................  .     ..     .                                                                                                                                                                                                                                                                            . .. ......  ...........:+%@#=.    :=*%#*=:=*=.               ..              .....:------:......       .....=-...       ..          .. .:-------:.     --          -=.  .:--------:.......                .=-      --                ..                                          ....                                      .+-    .       .  ............................... .....................:-++-....................==........:........................................................................................................:*@#=::::::::::::::::::::::-=+*##%%##*+=-:::--=--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::..........................................................................................................................................................................................................................   .   ...      .                                                                                                                                                                                                                                                                             . ...  ..  . ..... ... .-*%%*-   .-+#%%*=:::+#+.               ..                ....:-----::.....        ....-=...                   .. .:-------:.     .=:         .+:  .::--------:.......                .=:     .=:                ..                                          ....                              ..      .+-.         .    .  ...................................................:-++-....................+-.......::........................................................................................................:+@%+:::::::::::::::::::::::.::::-=+**###*+==---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-::-------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.......................................................................................................................................................................................................................  .... ...       ..                                                                                                                                                                                                                                                                            .... .... . ..  .    .=#%#=.  .=*%%%*=:...:+#+.                .                 ...:-----::.... .       ... -=...                   .. .---------:.     :=.         ==.  ::---------:......                 .+:     :+.                 .                                          .....               .              ..     .+=.             ..   ...................................................--++-...................:+:......::............................................................................::............................=%@*-:::::::::::::::::::::::::.:::.:::-==+++++==--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::::-:-------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::................................................................................................................................................................................................................................  .                                                                                                                                                                                                                                                                                 . .. .. ....... .  .:+#%*-..:+#%%#+-:::.:::+#+.                .                 ...::----::.... . .     ... :=...                   ....--=------:.      =-         :+:  .:----------:......                 :+.     ==.                 .                                          .....               .             ...     .+=.      .   ...  ..................................................:...:--+==...................==...:..:::............................................................................::..................:-:.......-#@#=::::::::::::::::::::::::::::::::::.:::----=---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::.:::::::.:........................................................................................................................................................................................................................      ..  .                    .                                                                                                                                                                                                                                                          ....... ....... ..-*#*=::=*%@%*=:....:::::+#*:                .                  ...:---:::....  .      ..  :=:..                   ....--==-----:.      .=:        .==  .:----------:......     .            :+.    .+-                  .                                          .....              ..             ..    . .+=.         . .. .  ................................................::...:--+==...................+-..::.:::.............................................................................:..................-*+-.......:*@%+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.......................................................................................................................................................................................................................... ..       ..   . ..                                                                                                                                                                                                                                                                      .... ......... .:=*#*++*%@%#+-....::.:::::+#*:                .                   ..::--:::....  ...     .  .=:..                   ....--==------.    .  :=.        :+.  ::----------:......  .               -+.    :+:                                                            ......               .           . ..      .+-.  .       ..  . . ................................................:::..:==+==:.................-+:.::::::..............................................................................:..................=**-........=%@*-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:.:::................................................................................................................................................................................................................................    ....         ..                                                                                                                                                                                                                                                                ...........  .-+*###%%%#+-:. .......:.:::+#*:                 .                  ...::-:::....  ...     .  .=-..                  .....:--+=-----:    ..  -=.       .=-  .:-----------:......  .               -+.    -+.                                                            ......              ..           . ..  .   .+-           .  .. ...................................................:::..-===-=:.................++-:::::::..............................................................................:..................=**-........-*@%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:::......................................................................................................................................................................................................... .................  ....       .  .                                                                                                                                                                                                                                                                 .  . ... .....   .:=*%@%%#*+-.............:.:::=##:                                     ..:::::::..    . .    .  .-=..                  .....---=+-----:.    .   =-.   .   :+. .:------------:.....     .             ==.   .==                                                             ......              ..       .  .  ..      .+-             .     ..................................................:::::-===--:................:+-==:::::...............................................................................:..................=#*-........:=%@#=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:.:........................................................................................................................................................................................................................ ..  .  ....   .                                                                                                                                                                                                                                                                    .......   ..:=#%@%*+-:..  .............:::.=##-                                      ..::::.:..    ....       -=..                  .....---=+=-----.    .   .+-    .  .=-  .:-----------::.....  .                ==.   .+-                                                             ..::..              ..          . ...      .+:         .   ....  ...................................................:::::-===:-:................==:=+-::::...............................................................................:..................=#*-.........:*@@*-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::..:..:.................................................................................................................................................................................................................... ..... ..  ....     .. .                                                                                                                                                                                                                                                          .        .      ..:-+#%%*=-..  ...................::-##-                                      ..::::.:..     ...       :=:.                  .....----+=-----:.   ..   .+:       :+. .:------------:......  . .             .==    :+:                                                            ..-::..              ..          . ....     :+:                  ....................................................::::::-===:-:...............:+-:-+=-::........................................................................................:.........:+#*:..........-*@@*-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:.........................................................................................................................................................................................................................  . . .        ..         .                                                                                                                                                                                                                                                         . . ...:-=+***=-.    ......................:=#%=                                       ..:::.....    ....      .=:                   .....----++------.   ...  .:+:   .  .==  :-------------:.....     .             .+-    -+.                                                            ..:.::.              ..       ... .....     :+.            ....   ..........:........ ................................:::--:-=+=.-:...............==::-++-::..................................................................................................:+#+:...........-*@@#=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::......................................................................................................................................................................................................................  .. . .. .  ...     .                                                                                                                                                                                                                                                                      ..:::--==-:.  ..........................:=#%+.                                       .:::..:..     ...      .=-.                  .....:---=+=-----:.  ... ...:+.   .  :+: .:-------------:.....    ..             .+-    =+..                                                           ....:-.             ...       ... .....     -+.               .  ...........::.........................................::---:-=+-.-:..............:+-::-++-:........................................................................................:..........:*#+:............-+%@%*-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.................................................................................................................................................................................................................. ... .........     ..        .     .                                                                                                                                                                                                                                                       .  .....::................................:=#%*.                                       ..::..:..     ....      -=.                  .....:---=+=-----:.  ....... :+.   .  =+..:--------------:....   . ..             .+-   .+=                                                            .....:=:             ...       ......:..    .-=..     .     .  .   ..........::..........................................:----:-=+-.::..............==:---+*-..:.....................................................................................:...........-##=..............:=#@@#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----:----------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::.....:........................................................................................................................................................................................................ ........ . ......   .       ..       .                                                                                                                                                                                                                                                     .        .... .............................:.=#%#:                                        ..:.....      ....     :=.                  .....:----++------:. .......  :+.  .. .+- .--------------:.....   ...              .+:   .*-                                                            ....::=:  ..         ....      ..........   .=-.                .............:::..:......................................::----:-=+-.::.............-+-----=*-.......................................................................................::..........:*@%+-::.......:::...-+#@@#+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-::--:-------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:::.:...::.................................................................................................................................................................................................................... .  . .  ..        ...                                                                                                                                                                                                                                                              ....... ................................:.-*%%-                                         .:......     ....     .=:                 ......:----=*=-----::........   :+.  .  -+..:--------------:.....   ...       .      .+:   :*-                                                           .....:-=:. --.       ......     ..........   .=:               .. ............::::.:...............................:.......:-----:-++:.::.............+=-----=*:.......................................................................................:...........:*%%***+=--:......::..:-+#@@#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::----------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::.....:..................................................................................................................................................................................................................  ..  ..     ..  .                                                                                                                                                                                                                                                                 . .  .....................................:+%%+.                                        ........     .....     --                 ......:----=++-----::........    :+.  .  == .---------------:....   ....              .=:   :*:                                                           ....::-+:  :=.       .... .     ......::..   .=:                ..............:::::::...............................:::.....:-----:-++:.::............=+------=*:......................................................................................:............:*%+-=+*###*+=-::.......:-+#%%#+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:..::.:...............................................................................................................................................................................................................................  .                                                                                                                                                                                                                                                                           ......................................=#%*.                                         ........     ....     :=.                ......:-----++=-----::.......     :+. .. .+-.:---------------:....   ....      .       .=:   -*..                                                       .  ....::-+:. .=:       .....     .......:::.   :=.            .     ............:::::::...............................::::....:------:=+=..::...........:*=------++:.....................................................................................::............=##-:::--=+*####*+=--::....:=*%%#+-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::......:...:.............................................................................................................................................................................................................. .....   .                                                                                                                                                                                                                                                                           .....................................-#%#:                          ..             .... ...     .....    .=:                ......:-----=*=------::......      :+. .. :+..----------------:....   ....      .       .=:   -*..                                              ..       . .....::-+:. .=-       .....     .......:::.  .--.   .     . .. ..  ............:::-::::..............................:::::....:------:=+=..::...........++-------++:....................................................................................::............:+%#-::::::::-=+**##%##*+==-:.:-+*#*+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...::.::..................................................................................................................................................................................................................  ..      ..  ..         .                                                                                                                                                                                                                                                            .. ..................................:*%#-                          :-.             ...  ..      .:...   .--                .......-----=*+-------::......      :+. .. -+.:----------------....   .....      .       .=.   -*...        .                                    ..       . ....:::-+:.  -=.     .....     ........:::.. .-:                 ...............:::-::::..............................:::::...:-------:=+-...:..........=*-------:++.....................................................................................::............:#%+:::::::::...:::-=+*##%%##*==-==+*+=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:---------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:..:......................................................................................................................................................................................................................... ..   .....  ..                                                                                                                                                                                                                                                                 .. ..................................+#%+.                         :-.  .          ...   ..     .::..    :-.               .......:-----++--------::.....       :+:....==.:---------------:..:.   ......    ..       .=.   -*...        .                                    ..       . ....:::=+:   :=:     .....     ........:::.. .=.       .       ... .............::---:::..............................:::-::...:------::=+-.............:*=------::+=....................................................................................::.............=%%=::::::::::::::.:..:::-=++****+++++++=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::........:................................................................................................................................................................................................................. ...  .    ..  ..                                                                                                                                                                                                                                                          .    . ....................................-#%*:                         :-.  .           ..    .  .  ..:...   .=.                ......:-----=*=--------::....  .     :+:....+-:----------------:.:::.  ......    .     .  .=.   -*....        .                                   ...     .......::-=+:   .=-     ......   ........::::.. :-.       .     .    ..............:-----::::............................::---::..:----=--::++:.............++-------::*-...................................................................................:::............:+%#:::::::::::::::::::::.:..:::--=====++==-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:...:..............................................................................................................................................................................................................................  .    ..       .                                                                                                                                                                                                                                                     .     . .. ............................:*%*-                         :-. ..            ..    . .   .::...  .-:                ......:-----=*+---------:....  .      .+:....+-:----------------:::::....... .   ...    .  .-.   -*:...        .                                   ...     ......::--=*:   .-=.   .......   ........:::::..-:.             .   ......:........:------:-=-............................::---::..:---==--::++:............=*-------:.-*:..................................................................................:::.............:*%*::::::::::::::::::::::::::::::::::::---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::.:.::.:.::..:...................................................................................................................................................................................................................... ... .   ..       .                                                                                                                                                                                                                                                   .         ...............................+##=.                        :=. ...          .      . ..  .:::..   :-.               ......:------+*=--------::.... ..      .+-...:+::---------------:::::::......     ...   . . .-.   :*:....       .                                   ...     ......::--=*:.   :+.   ......   .........:::-:..-.               .. ......:........:------:=+=:...........................::----::.:---===--:-+=............-*=---=--:..=+:.................................................................................::::.............-#%=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-:--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:.::::...::........................................................................................................................................................................................................................  .....         .  .                                                                                                                                                                                                                                                 .     .    ...............................-##+:                       .:=. ...                  . .   .::...  .-.                .....:------=*=---------:.... ..       .+-...-+:----------------:::---::......    ..      . .-.   :*- ...       ..            .                     ....   .......:---=*:.   :+:   ......   ........:::--:.:-.              ... ......::......::--------++-...........................::-----:::---====---=+=...........:*+--==---:.:++....................................:..:..........................................:::..............+%#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::---------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:::::.:.:............................................................................................................................................................................................................................ ....  .  ..      .                                                                                                                                                                                                                                                  .  .  ................................:*#+:                       .:-.....                  . .   .:::... .-:                ......:------*+----------:......        .==...-+:----------------::----::......   ...   .  . .-.   .*- ....       .            .                    .....   ......::---=*:.   .+-  ....... ......:....::--::::                 . .....:::.......:--------=*+:...........................:------::----====---+*-..........:+*--===--:..:*-...................................:..:......................................::..:::..............:*%*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:.::...:::.:....................................................................................................................................................................................................................................                                                                                                                                                                                                                                                           .. .................................+#*-.                      .--.....                   ...   .:::..  :-                ......:------+*=----------:.....          ==...-+:---------------::-----::.......  ... . .  ...-.   .*=...:.  .    .             .                   .....   ......:----=*:.   .==. ...............:..:::--::-..               ........:::.....:.:---------*#=...........................:-------::---=====---++:.........:=*=-====-:...=*:.................................:::.:.......................................:..::::..............-#%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::::-----------------
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::.:::.:..::........................................................................................................................................................................................................................................      ..                                                                                                                                                                                                                                                .. ................................=#*-.                      .--.....                   ...   .:::... .-.                ... .:------=*=----------::.....          -=...=+:---------------:------::....... .... .     ..:.   .++. .:..  .   ..    .       ..                  .....   .....::----+*:.    -+. ..............:....::----:..              .........::::......:---------+#*:..........................:--------:----=====--=*+:.........-*======--:..:++.................................:::.:.......................................::..:::...............=%#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-:-:-------------------
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:::::.:..::................................................................................................................................................................................................................................ ..... .    .   ..      ..                                                                                                                                                                                                                                      ..  .... ...........................-*#=:.               .     .--......                   ..    ::::....-:                 .. .--------++-----------:.....           :+...=+:----------------------::....... .... ..    ..:.    =*. .::.   .  ..          .  .                  ... .   .....::----+*:     :+...................:::----=: ..       .    ..........::::......:---------=##-..........................:-------------=====---=*+:........-*+=====--:..::*-...............................::::::........................................::.::::..............:*%*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::--------------------
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::...:......................................................................................................................................................................................................................................... ...                                                                                                                                                                                                                                                   ... .. ........................+#+:.               .     .-:......                   ...   .:::... :-.                 .  -+------+*=-----------:.....           :+:..=+-----------------------::....... .......    ..:.    :*: .:::.   .  ..    .       ..                 ......  .....:-----+*:     :+:...............:...::----=. ..              ........::::......:----------*#+........................::.:-------------====----+*=........:+*======--..::=*:..............................::::::........................................::.::-:...............-%%=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::--::::-----------------
+==---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:.........................................................................................................................................................................................................................................            ..                                                                                                                                                                                                                                      . ...............................-#*:.               .     .-:......                   ...   .::::....-.                    .==-----=*+------------:....            :=:..=+-----------------------:...............     .::.    .*- ..:::.   ..... .  .    .  .                ....... .....::-----+*:     .+-..............::....:---=-. ..         .  . .....:..::::...::.:----------+#*:...................::.:::.:-------------=====----+*=:......:=*======--:.:::++..............................:::::::.......................................:::::-::..............:+%#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-------------------
=++++++++==---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::......................................................................................................................................................................................................................... .................  .   ..                                                                                                                                                                                                                                             ..   ........  ..  . ...........:*#=               ..     .-:....::.                  ....   .::::...::                    .-+------+*=-----------:.::.          .  .=-..=+-----------------------:...............     ..:.    .++. .::::.  ...... . .     . ..            .  .............::-----+*:     .+-.....::........:....:---=-:....        .. . .....:.::::::...:::----------=**=:.................:::.:::::-------=-----======---=**=:.....:=*=======-:.::::*-............................::::::::........................................::::--::..............-#%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
:::::--==++++*+++==--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::......:........................................................................................................................................................................................................................................ ..     ..                                                                                                                                                                                                                                         .   .     ..  ...  ............=#*.              ..     .-:....::.                . .....  .::::...:-.                    .+=-----=*=------------::::.         .. ..=-..=+-----------------------:...............      .:.     =*. ..::::.  .......  .    .  .            .  ............::------+*.     .+=....::::............:--=--:.....          . .......::::::.....:-------=--=+*+--................:::.:::::-------=------=====----=*+-:....:-*+======--:::::=*:...........................:::::--:........................................::::--::...............+%#-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
=--:::::::::::--==+++++===--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...:.....................................................................................................................................................................................................  ...........................................     ..      .                                                                                                                                                                                                                                   .     . ..  . ............:*#-              ...    :-:...:::.                 ......   .::::...-.                    .-*=-----*+-------------:::.          .  ..-=..-+-----------------------:.:.............      .:..    :*- ..:::::.  ....... ..    . ..           .  ............::------**.     .+=:...::::......::...:---=--:.....          ......::.::::::.:...:-------==--+**=-::..............:::::::::-----=-==-----========--+*+-:...:-**=======-::::::++...........................:::::--::.......................................:::----::..............:#%+::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
%%%#**++++++++++++=====+===++===---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:..::............................................................................................................................................................................................................................................ ...     ....   . .                                                                                                                                                                                                                                        ......... ..........=#*.            ....   .:::...::::.                .......  .:::::..::                    .:++-----+*=-------------:::.  .      .   ..:=:.-+-----------=-----------:.:.............      .:..    .*= ..::::::.  ...:... .    .  ..          .  ............::------*+.     .=+:..:::::.....:::...:--=---:......      .  .........::::::.:..::------===--+**+=-::.............:::::::::------===------======-=--+*=-:...-+*=======-:::::.-*-.........................::::::--::.......................................::::----:..............:+%#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
$$$$$$$$$$$$$$$$$$$@@@@%%#*++=-========--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::..:::.................................................................................................................................................................................................................................................  .....        ..    .                                                                                                                                                                                                                  ..   .    .      ... .. .........:##-            ....   .:::...::::.                 ....... .:::::...-.          .         .-*=----=*+--------------::.  ..     ..   ..:=:.-+-----------=-----------:.:.............      .:...   .+*. ..::-:::. ...::.....    . ..         ..  ...........::-------*+.    ..=+:..::::::....::...:-------:...... .    ............::::::::...::-----=-==-=**++-::............::::::::::------====-----=========-=**=-:..-=*=======--::::::++........:................:::::----:.......................................::::----::..............-#%=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#*==----======--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:..::.............................................................................................................................................................................................................. .. ...............................  .....           .                                                                                                                                                                                                                             .    .    ...  ..........+#+.          .....   .::::..:::::.                ........ .:::::..::           .        .:+*=----+*=--------------::. ..     ..    ..:=:.-+-----------==---------:::::............ ..   .....   .-#- ..::--:::....:::.....   .  ..        ...............::-------*+.   ...=+:.::::-::.....:...:--------...... .    .. .....:...::::::::::.::-----======*+++-::............:--::::::------=-====----=========--=*+=-:.:=*+=======-:::::::*-.......:................:::::----:.......................................::::-----:....:.........:*%#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=-::::--====---::::::::::::::::::::::::::::::::::::::::::::::::::::::.......:......................................................................................................................................................................................................................................................  .   .....                                                                                                                                                                                                                                 .      ... .........-##:          ......  ...:::::::::.                 ....... ..:::::.::.                    .-*+=---=*+=--------------:. ...    ...    ...--.:+----------===---------:::::.....:...... ..   ......  .:*+. ..:---:::...:::::...    . ...      ..........:.....:--------*=.   ...=+:::----::...:..:.::--------.........    . ....::...:::::::::.:::-----======*++=-:::...........:---:::::--------======--=-=========-+*=--::-*+=======--::::::=+:.....:::...............:::::-----:......................................:::.:----:....:........:-=%%=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*==:.:::---==----:::::::::::::::::::::::::::::::::::::::::::::.::.....:....................................................................................................................................................................................................... ................................................        .    .                                                                                                                                                                                                                           . .   ..  . ........:::*#=.         ......  ....:::::::::                 ..........:::::..::.          .        ..+*==---+*==--------------:.. .     ...    ...:-.:+=---------===---------:::::....::...... ...  ......  .:=#-...::---::::.::::::...   .. ...     .........::....::-------=#=.  ....-+:::----::.......::---------..........  ........:..:::::-::::.:::-----======**+=-:::...........:---:::::--------======--==-==========++=----++========-:::::::+=.....:::..............:::::------:......................................:::::-----:...:........:=+#%*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+=:...::--------::::::::::::::::::::::::::::::::::::::::::::::...................................................................................................................................................................................................................... ...........................................   .                                                                                                                                                                                                                                    ..   .. .....-=-=#*.        .......  ....:::::::::.                ......:....:::::.::.           .       ..-#+==--=*==--------------:... .    ...     ...:-.:+=--------====---------:::::...:::..........   ......  .-#+:..::-----::::::::::...   . ....    .........:::...:--------=*-. .....-+::------:....::::----------:.......... ......:::..:::::-:::::.::-----=-====+*+=-:::.....:.....:----::::----=--========--=-=========-=*+=---+*========-:::::::-+:...:::::.............:::::------:......................................::::.:--=-:....:........-+*%#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+=-:...:::------:::::::::::::::::::::::::::::::::::.::::.::........................................................................................................................................................................................................................................................  ....     .   .      .                                                                                                                                                                                                                .  .     .  .  ......:==-##-        .......  ....:::----::..               ......:::..::::::.:..          ..       ..+#===--**----------------:.. ..   ....     ....:.:==--------====---------::::::..:::...........  ....... .:*#-:::::-------:::--:::..   ......   ..........:::...:--------+#:. .....-+:-------:...::.:-----------:.....:....  ....:.:::.::::--:::::.::-----======+*++-::::...:::...:-----::::----=---=======-===-==========+*=---=*========--::::::.+=...::::::............:::::------:......................................::::.:--=--:...:........:=*%%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::-------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+=-:...:::::::::::::::::::::::::::::::::::::::.::::::.::...........................................................................................................................................................................................................................................................     ..         ..                                                                                                                                                                                                                 ..  .    . . .......-+=+#+.       ........  ...:::----:::..    .          .....:::...:::::.::..          .       ..:*+===-=*=----------------:. ..   .....     .::.:.:=+--------====---------:::-:::::::........... ..........:-#+:::::--------::-----:..   ......  ..........::::..:--------+*:.......-+--------:...:::------------:.....:..... .....:::..:::::---:::::-------===-=+*++=::::.:::::...:------:::----==--=======================++=--=*========--::::::.:+:..::::::...........:::::-------::.....................................::::::--==--:..::........-+#@#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-::--------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#+=-:....:::::::::::::::::::::::::::::::::::::::..:.:...........................................................................................................................................................................................................................................................  ...   .                                                                                                                                                                                                                          .        ..........=++#*:      .........  ...::------::..   .:.         ......:::..:::-::.:...          .      ...=*=-=--*+---------------:-:....  .....     .:::::::=+-----=--====--------------::::::........::............:-*#--:::---------:------:..  ......  .........:::::.:---------*+. ......-+--------:..::.:------------:.....:..::........:::.:::-----:::::------=-====+*++=-:::::::::...:------:::----==--========--==============+=--=*+=======--::::::..==.:::::-::..........:::::--------:.....................................:::::::-===-:...:........:=#@%=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:-:------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=-::.....::::::::::::::::::::::::::::::...:.:..............................................................................................................................................................................................................................................................  ....    .   .                                                                                                                                                                                                                 .     .   .........-++*#=      .........  ....::-----:::..   ::         ......:::::.::-:::::..          ..      ..:+*----=*=-------:-------::. ...  .....     ::-:::::-+-----=--=====----------------:::........:::...........::=#=---::----------------::.  ................:::::::---------#=........-+--------:..:::--------------.....::.:::. ....::...:::------::::------=-=--=+*+*=--:::::::::.::------:::----==-==============-===========+===++========--::::::.:+-::::---:..........:::::--------:.....................................:::::::--===-:..::::::....-*%@*:::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%##*+-::::::::::::::::::::::::::::::.::::..:.................................................................................................................................................................................................................................................................. .            .                                                                                                                                                                                                               . .... .......+**#+.     .......::. ....::------::..   .-.        ......::::::::--::::...          ..  .  ...-*+----*+--------:-------::..... ......    .:----:::-+=----=-======-----------------::........::::..::.......:-**-----------------------:. ................:::::::--------=*:.......:=+--------:.::----------------....:::.::::.....:::..:::------::::------===--=++**=---::::::::.:--------::---====-=========================++==++========--::::::..==::::---:.........::::::--------:......................................::::::--===--:.------::..:=#@#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#+-::.::::::::::::::::::::::::.::::::....:...................................................................................................................................................................................................................................................................                                                                                                                                                                                                                     .  .... .........-****:     .......-=: ....::-------::..   ::        .......::::::::--::::...         ...  .  ...=*=---=*=-------:--------::.... ......    .:-----::--==----=-======-----------------::.......::::::.:::......:-=#=-----------------------:. ...............:::-:::--------+*........:=+--------::------------------...::::::::::...::::::::-------::::-------=---=++**=--------:::::--------::---====-==============-===========+===+========---:::::..:+-:::---:.........:::::---------:......................................:::::::-====-:::--=++=-:..:+@%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::::-------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=::.::::::::::::::::::.:::...:::.:.................................................................................................................................................................................................................................................................  .            .                                                                                                                                                                                                        . ...  ... .......:****-     ......-++=......:-------::...  .-.        ......::::::::--::::....         ...  . ...:+*----**-------::--------::.... ......   ..:---------==----========-----------------:........::::::.::::.....:--*#------------------------:................::--:::--------*=.......:-=+-------------=--------------..:.::::::::::..::::::::--------:::--------=-==++**=----------:::--------::---==============================-=+==+========---:::::..:=+:::----:.......::::::----------......................................:::::::--====-::---+*+--:..-#@#-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*=-:...::::::::::::::.:::.:::..:...................................................................................................................................................................................................................................................................                                                                                                                                                                                                                      .. . ....  . .....=#**=.    ......=*#+:.....:--------::...  :-..      ......:::::::::--::::...         ...  .  ...:*+---=*=-------::-------::............  ...:---------==----=========----------------:........::::::::::::....:--=#+------------------------:...............::---::-------=*:.....::--=+-------------=--------------...::::::::::::.::::::::--------::--------===-=++**=---------------------::--=====-===========================+==+========---:::::..:-+-:-----::......:::::-----------......................................:::::::--====--:::-=**=--::.=%%+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=-:...:::::::::..::::::.:::.....................................................................................................................................................................................................................................................................  ..                                                                                                                                                                                                              .   ..      .......-***+:    ......=##*-.....:---------:...  .-: .     .......::::::::---:::....         ...  .  ...-*=---**-------::--------:::..........   ..:----------==----=========-----------------........:::::-::::-::...:---+#=------------------------:..............:----:--------+*.....::---=+------------=---------------:...::::::::::::::::::::--------::----------=-==+**=-----==---------------:--==================================+=++=======---:::::::::==:------:......:::::-----------:.....................................:::::::---====--:::-*#+---:::+%%=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----::-------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=-::...:::::::::::::.......................................................................................................................................................................................................................................................................  ....                                                                                                                                                                                                                 ..............:*#*+-    ......=#**+:.....:--------::...  :-. .     ......:::::--::---:::....        ....  . ....=*=--=*+-------::--------:.:..........  ...:----------===---=========-----------------:.......::::---::----::.::---*+------------=------------:.............:-------------*=....::----==-------=----=---------------:..:.::::::----:::.::::---------::------------==+**=----====--------------:--================================--=+++========---::::::::-+-------:.....:::::-----===----:.....................................:::::::---=====--:::=#*=---:::+##=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::--:-------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*+=-:....::::::.::.......................................................................................................................................................................................................................................................................  .  .                                                                                                                                                                                                                ..  ........ .+#*+-.   ......=#*+#+.....:--------::.... .-:. .    .......:::----:---:::.....        .... .. ....+*---+*=-------:---------:::.......... ....:----------===----========-----------------:.......:::------:----::.:---=*=----=------==------------::...........:------------=*:..:::-----==------==---==----------=----:..::::-:::-----:::.:::-----------------------==+**=----=====--=-------------=================================-=+++========---:::::::::==-------:....:::::-----=====--:..:...................................:::::::---====---:.:*#=----:.:=*#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%#*+--:....:::::.:....:..................................................................................................................................................................................................................................................................  ..                                                                                                                                                                                                               .  ..........-#*+=.    .....=#*=#%+....:---------::.... .-....    ......:::---------:::.....       ..... .......*+--=*+--------:--------:.:::........  ...::----------====---=========----------------::.....::::-------------::----+*=----=-----==--------------:..........:------------++..::::-----==-----===---=-----------=----:.:::::--:------::::::-----=--------------==--==+#*-----======-=------------==================================--=++========---:::::::::-+-------:....:::::----======--:..:...................................:::::::---=====--:::+#+:----::::+##=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%%##**=-:.....::::.............................................................................................................................................................................................................................................................  ...   .    .                                                                                                                                                                                                              ..  .......:*#+=:    .....-##-+%#-....:--------::....  ::....   .......:::---------::......       ............:*+--+*=-----------------:.:::........ ....:---------====+*=--=========-----------------:....:::::--------------::----++----=-----===----=---------::........:------------#-.:::-------==----====--==-----------=-----.:::::----------:::::-----=-------=----------==+#+-----========------------===================================-=++========---::::::::::==-------...:::::-----======---.::...................................:::::::----====---:.-**-::---::..-*#*=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%#####*+=-:.....:..:.................................................................................................................................................................................................................................................................... .                                                                                                                                                                                                              .   ..... .*#+=:.     .  :*#=:#%*:...:---------::.... .-:....   ....:.:::---------:::......      .............:*=--*+------------------:.::::...........::-----------==**+--=========---------=-------:....:::::--------------------=*=---==----====----==---------:......::-----------+*:::::-------==---=====--==----------==-----::::::-----------::::-----=-------=------------*#+----=========------------=====+=============================--=+========---::::::::::-+-------:..:::::---========---:.:....................................::::::--=-=====--:::*#+==-::-:::.:=*#*=:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#*+*****=-:....::::..........................................................................................................................................................................................................................................................  .   ..  ..     .                                                                                                                                                                                                          .   .+#*--.        .*#+.=%%=...:---------::..... .-...... .....:.::----------::......       .............-*--=*=-----------------:.:--:::..........:----------=-==*#+--=========--------==--------:..:::::----------------------=+=---=----=====---===---------:.....::-----------*+-:::--------=----=====--=------=---====----:::.::------------:::-----==----====----------=*#=----==========-------===-=====+=============================-==++========--:::::::::.-+=------:..::::----========---:.:....................................::::::--==-====--:::=#*=++=-:::::..:=*#*=:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*+++*#**+-:.....:::.................................................................................................................................................................................................................................... ........... ... .   ...                                                                                                                                                                                                                         .=#*-:.        .+%*::*@#:...:---------:...... ::...... .....:::-----------::......      ..............=*--+*------------------:.:---::.......:..:------------==*#*--==========-------===-------:..:::::-----------------------++---==----====----===---------:....::----------+#=--::--------=---======-==-----==-=-===------:::::-------------::-----==----====----------=#*=----==========-------=**=====++==============================--=+========--:::::::::.:=+-------:.::::---==========--:.:....................................:-:::::-=======--:::-*#=-=+*+=-:..:..:-*##+-:.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%@%#+=:.......::............................................................................................................................................................................................................................................... ....          .                                                                                                                                                                                                              .  =##-:.         =##:.-%@+...:----------:..... .::..... ......::-------------:......      ..............=+--*+------------------:.:----::......:::------------===*#*--==========-------===-------:::::::*#*=---------------------++--===---=====---====---------::..::----------*+---:---------=--======-==------=-==-===------:::::--------=-----:-----==---=====----------*#+-----===========-------+#*====+++===================+++========-=+========--::::::::..--+=------:::-::--===========--:.:...................................::-:::::-====--=--::::+#*-:-=+**+=:.....:-+##*=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::---:-----------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+=-:....................................................................................................................................................................................................................................... ...............    ..                                                                                                                                                                                                                    .=##-:.  ..     :##-..+@%-...:---------:...... .:.............:-------------:.......     ...............++-=*=------------------::------::....::::------------===*%*=-===========------====-------:::::=%%#+--------------==------+=-===----=====---=====--------::.::---------=*=-------------=-==========------=-=-=====------::::--------===----:----===--======--------=*#=-----===========--------*%*===+++===================+++===================---:::::::..--==------:::-:--============--:.:......................::.........:.::--::::--=====---::::-##=-::--=*##+=::....:=*##*=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#*=-:...............................................................................................................................................................................................................................................    .  .   .                                                                                                                                                                                                                .=%#-..  .--.   .*%+:.:#@#:..:----------:.......::.............:-------------:......      ...............+=-++--------=---------:::-------:....::::------------===*%#=-===========------====--------:-:-*%##+--------------===------==-===---======---=====---------::----------*+=---------------==========------===-====-------::::---=----===----:---====-=======--------+##+=----============-------=#%*==+++===================++++========-======+===--:::::::::--=+=---=--::-:--=============--.:......................::..........::---:::::-=====---:::::*%+--:::::-=*##*+-:....-+#%#+-:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+=-:............................................................................................................................................................................................................................. .............    ..                                                                                                                                                                                                                   .+%*: . .=*+:    =%*:..-%@+...-----------:.......::....:.......:-------------::......  .  .....:.........:*=-*=--------=---------::---------:. .::---------==--====*%#=-===========--=---====-----------+%#*#*--------------====-----======---======---======---------:---------+*==--------------===========------==-=====--------:::---==---=====------============--------*###+=---=============-------+%%+=+++===================++++========-======++==--:::::::::---==---=--::---==============--::.....................:::.........:::---:::::-======---::::+%#=--::::::::=+*##*=-:...-+#%#+-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::--------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#*=-:..............................................................................................................................................................................................................................  ..... .                                                                                                                                                                                                                       :*%+.   .+%%-    :##=...+@%-..:-----------:.......:...::::......:-------------:.......  . .....::.........:*==+--------====-------::----------. :::--------===--====*%#=-===========--=----====----------#%*+%*------=-------======----======---======---======-----------------=*+==-------------===========-------==-=====-------------====--=====------============-------=##*##=---=============----::-=*%%++++===================++++========-======++==--:::::::::---===--=-------==============--:::....................:::........:::----::::::-======--::::-#%=---::::::::::-+*###*+-:.:-+##*=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-::--------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#*-::.............................................................................................................................................................................................................................. ..... ..                                                                                                                                                                                                                .=#%=.   :*%%+.   .+%*....*@#:.:------------:.......:...::::.....:--------------:....... .. ....:::.........-*-++--------====-------:-----------:.::------=-====--====*%%=-============-=---=====---------=%%=+##=-------------=======-----=====--=======--=======----------------+*===------------============------===-=====----=--------=====-======-----============-------+#*+%@*---=============---:::-==#@#++++===============+==+++++=======-======++==--::::::::----===-==------===============--:.:..................:::-::.......:::-----:::::-=======--::::*%*----:::::::::::::=+*#%%#+=--=+*#+=:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*+-:.............................................................................................................................................................................................................................  .                                                                                                                                                                                                                  .+%#-   .=##*#=.   :##-...:%@*..:-----------::......::..:::::.....:-------------::....... . .....:::........ -*-+=--------=====------:------------:::------======--====*%%+-============-=----=====--------*%#==##=------=------=======-----=====---=======--=======--------------=*====------------============-----==========----==-------=====-=======----==++========-------*#+=#@%*=-========+====---:.:-==+%@#+++====++=========+=++++++=======-======+++=--::::::::-----==-===---=================--:.:..................::---:......::::-----:::::-=======--::::=##-------::::::::::::::-=*#%%#*+++***=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#*=-.....................................................................................................................................................................................................................   .. .                                                                                                                                                                                                                 :*#+.  .=##+:+#=   .+%*:...-%%=.:------------::......::..::::::...::-------------:::...... . ....::::..... .  =+=+---------=====------:---------------------======--====*%%+==++===========---======-------=%%*-=#%+------==-----========-----=====--=======--========-------------++=====--=-------=============----====-=======--===-------==============---==++========------+#*=-+%%%#=-===+===+====---..:-===*@@*++====+++==+=====++++++++=======-==++==+++=--::::--------=======--===================-:.:.................:::---:......::::-----::::::-=======--::::#%+--------:::::--::::::::::-+*#%#####*+=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=-:..................................................................................................................................................................................................................  .  .   .     .         .                                                                                                                                                                                          .=##-  .=#%*: .*#-   :#%=....=%%-.:------------:.......:...:::-::...:-------------::.:............::::...... . .+++=---------=====----------------------------======--====*%@+===++===========---=====-------+%%+--*%*------===----=========----======-========--========-----------=+======--=------=============-----====-=======--====------===============--==+++=======------*#+--+##*%#+-=++===++====--:::-====#@%++====+++==++====++++++**+======-=+##+=+++=--::::-------========-====================-:.:................:::----:.....::::------::::::-========-::::+%#=----------::::-::::::::::.:::-=+*####*+=::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*+-:................................................................................................................................................................................................................  .....        .    .                                                                                                                                                                                            :+#+. .=#%*-.  .*#-   =%#:...:+%#:::------------:.......:..::---::...:-------------::::............::::...... ...+++--------=-=====----------------------------======--====+%@*===++===========---======------*@#=--+%#=-----====---=====**+=----===+==--========-=========---------=+=======--=-----==============----=============--====------================-=++++========----+#*=--+##=+%%*=+++==++====--=+=-====+%@%+===++++=+++====+++*#*#%#+=======+%#+++++=--::::-------=============================-:.:................:::----::....::::-------::::::-=======--:::-#%+------:-----:--::::::::::::::::::--=++*#*+=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::--:-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+-:.............................................................................................................................................................................................................  ...                                                                                                                                                                                                         .-**-.:+%%*-.  . :*#-  .*%+....:*%*::-------------:.......:..:-----::.:--------------:::::..........:::::......  ..+++--------=-=====---------------------------=======--====+%@#===++===========---======-----=#@*---=%%=-----=====--===+*##*===--===+===-=========-=========--------=+=======--==----==============---==============--====------==================++++========---=*#+---=##+-+#%*+++==+++===--=*+-====+*%@#===++++++++====+++*%#+*%%+======*%#=+++++=-:::--------=============================-:..................::------:...:::::-------::::::-========-::::*%#=-------::------:::::::::::::::::::::::-=+++=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+-.......................................................................................................................................................................................................... ...  .  .  .                                                                                                                                                                                                .=+=:-*%%+:      .:##-  -##:....:*%+::-------------:......::..:-----::.:--------------:::::..........:::::......  ..++=--------=-======--------------------------=======--====+#@%===+++==========---=======----=%@+---=#%+-----=====--===*%%%*+===-====+===-===================------=+========--==--=-==============--===============--=====-----==================++++========---+**=---=##+--=#@#++++++++==--=**-====++*@@*==+++++++++===+++*%%++*%%*=====*%#=+++++=-:::--------=============================-:.................:::------:...::::--------:.::-::-========-:::-#%+------------::-::::::::::::::::::::::::::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@%*=:...................................................................................................................................................................................................... ... ..  .  .           .                                                                                                                                                                                  .:++=+*#*=.         :##- .+#+.....:*%=:-------=------:......:..::-----::::-------------::::::.........::::::......  .:++---------=-======-------------------------========--====+*@%+==+++==========---=======----+@%=----*%#=----======-====%@%#*====-===++========================----==========-===--=======++==+====-===+++==========--=====-----=================++++++=======---**+=---=#%+---=*@%*++++++===--**=-===+++#@%+=+++++++++===++++%%*+++#%#+===*%#=+++++=-:::--------=============================-:................:::-------:..:::::---------.::-::-========-::::*%#=--------------:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$@#*-:................................................................................................................................................................................................... .. ...    .  .                                                                                                                                                                                          .=+****=:            .*#- :*#-. ...:##=--------=------:......:..:------:::--------------::::::.........::--::......  .:*=---------=-======-------------==--------=-========--====+*%@*=++++==========---========---*@#=----=%%=----======--===*@@%#+==--===++=========================--==-========--===========++=++=======+##*==========-======-----=====++==========++++++=======--=**+=---=#%+----=*@%*++++++===-*#=-===++++#@%++++++++++===++++#%#++++*%%*==*%#=+++++=-::--------===-==========================-:................:::-------:..:::::---===---:.:-::--========-:::=%%+=-----------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@#+-............................................................................................................................................................................................. .........    .     .                                                                                                                                                                                     .-+*+=-:.              .*#=.=#+.  ...:##=--------=------:......:..:-------:---------------::::::.......:::---::......   -*=---------=-=======------------=---------==========--====++%@%=++++===========--========--=#@#------#%+----===++==-===+%@%#*==-====+++========================-==-=========-============*+++==-====+*%%*==========-=========--====+##+=========++++++=========+*++=---=#%+-----=*%@#+++++===-*#+-===+++++#@%*+++++++++==++++#%%++++=+%@#=*@%++++++=-::------================================-:...............:::---------:::::::--=====--:.::-::--========-::-#%#=-===---------:-:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:--------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@%*-:..................................................................................................................................................................................................... ... . .                                                                                                                                                                                    .:=+=:.                  .+#=.+*-......-##=--------=------:.........:-----------------==----:::-::.......:::---::......   =*----------=========-----------==------=++==========--====++*@@++++++==========--===========%@*------*%#=---==++++======#@@%#*==-====+++=========================--=====================+***+==-===+###%*==================++=--===+##+========++++++++=======+**++=---=#%+-------+%@#+++++===+#*-===++++++#@%*++++++++==++++*%%*+++==+#%%#%%++++++=-::------================================-:...............:::---------::::::---=====---..:--:--=========-:-+%%*===------------::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@#=:.......................................................................................................................................................................................... ....   ...                                                                                                                                                                                        .:--.                     .-*+-*+.......-##=---------------:..:.....:------------------=+----::--::.......::----::......   =+----------=========----------=====----=**=====+====--====+**%@#+++++==========--==========+%@+------=%%=-=+++++++======*@@%%#+=-====+++=========================-======================++##+=--==*%%**%#+=================+*+--====#%+========++++++++=======+*+++=---=#%+--------+%@%*++++==+##=-==+++++++%@%*+++++++===++++#%#+++===+*%%%%*+++++==::------================================-:..............::::---------::::::---======--:.:--::--=========---*%%+-----:--------::-----::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-----:------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#+-.............................................................................................................................................................................................    .           .                                                                                                                                                                           .::.                        :++=*-.......-##==------=-------: .:.....:------------------++----::---::......:----:::......  .=+:---------=========---===----====-----=##=====+====--====**+#@%++++++=========--==========+@%+-------#%*-*%#++++++=====+@@#%%#=-==+=+++================================================++#%+=-==*%%+-+##+=================+*+=--===#%*========++++++++======+++++++=--+##=------==-=#@%*++++++#%++==++++++++%@%*+++++++==++++#%%*+++=====*%%#+++++==:-------================================-...............:::----===----:::::--=======--:::---:---=========--=#@#==--------------:----::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*-........................................................................................................................................................................................... ...   . ..    .                                                                                                                                                                          ...                          .=**+:.......-#*==------=-------...:....::---==-------------+=----:----::.....::----:::......  .+=:---------==========--===---====+-----=##+====++===---===##==%@#+++++=====+++==-==========*@%=-------+%#=+@@*++++++=====%@##%%*=-=++++++++============================================+++#%+--+#@#+--+#%+=================+**=--===*%#========++++++++======+++++++=--+%#-----------=#@@#+++++#%###+=++++++++%@%*++++++==++++*%%*+++======+#%*++++==--------===============================-:..............::::---=====----::::--========--::----:--============+%%*=-------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*-.............................................................................................................................................................................................       .                                                                                                                                                                                                           :+*=... ....-**==------=-------...:....:----==------------=*=---------::.....:-------:......  .+=:---------==========--===---===*=-----=##+====++====--==+##=-*@@*+++++====++++=-==========#@%=--------%%++%@#+++++++====#@#+#%%*==++++++*#*===========================================+++#%=-+%@*=---=#%+==================#%*--===+%%+=======++++++++=====++++++++=-=*%*-=-----==---=#@@#*+++*%#+%%*+++++++++%@%*+++++==+++++#@#+++==+====+***+++===-------===============================-:..............:::--=======----::::-==========-::----:--=============*@%+---------------:---::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*-.....................................................................................................................................................................................  ....         .  .                                                                                                                                                                                                     .+*-..... ..-**==------=------:...:....:----==------------=+=----------:.....:-------:......  .=-:---------===========-===--===+*=-----=#%+=+++++====--==*%*--=#@%+++++===+++++=-==========#@#=--------*%#+%@%*+++++++===#@%=+%@%+==+++++*%%*=================================+==+====++++%#+#@%+-----=#%*==================#@#=-====%%*=======+++++++++====++++++++=-=##+--=-======-=-=#@@%****%%==%@#+++++++++%@%*++++==+++++#@%++++=+===**++++++===-------===============================-:.............::::--=========--::.--==========-------:--==============#@#=-=------------:---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*-.................................................................................................................................................................................. .... .....                                                                                                                                                                                                       .   . .=+-.   ....-**===----===-----:...:...::---====-----------++-----------:....::-------:......  :=:-:--------===========-===--===**=-----=#%+=++++++===--=+##+---+@@#++++++=+++++============%@#---------=##*%@@%*++++++===*@%+-+%@%+=++++++*%%*===============================+===+====+++*%%##+--------#%*==================*%%*-====#%#===+===+++++++++=====+++++++=-+##=--------------=*%@%***#@*.=#@%*++++++++%@%*+++==+++++*%%*+++=+===##++++++===-------===============================-..............::::-==========--:::--==========-----------===========+=+%@#--------------:--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::-::-:--------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:.................................................................................................................................................................................  .  . ..                                                                                                                                                                                                             :--:. . ....:+*===----===-----:...:...:----====----------=+=-----------:....:--------:......  :=.----------===============--===#+------=#%*=++++++++=--=*%#=----#@%*++++++++++++==========+%@*----------*##%%%@#*++++++==+@%+--*%@%++++++++#%%*===========+=================++===++===+++#%#+---------=#%*+=================*%%#+-===*%%*==+++=+++++++++====++++++++==*%*=-=++*###%%%%%%%%%@$@***@%=:==#@%*++++++*%@%*+++=+++++*%@*+++++===##++++++====-----===+========+==================-:............:::::--===========--.:--===========----------===========++++%@*------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#=:...................................................................................................................................................................... ........  ... .....                                                                                                                                                                                                      ....::....    ..:+*+==----===-----:...:...:----====-------=--=+=-----------:....:--------:....... :-.:---------================+==+#==-----=#%*=++++++++==--*%*-----=%@#++++++++++++========+=+%@*----------=##%#*%@#***++++=+@@+---*%@#+++++++###%#+========++================+++===++==+++*%#+----------+#%#+++====+==========+#%%#====+%@#==+++++++++++++==-=++++++++=+%@%%@$$$$$$$$$$$$$$$$$$$@**@$$%%##%$@%*+++++*%@#+++=++++++%@#+++++===%%*+++++====-----==+=========+==================-::...........:::::--===========--.:-============-----------=========+++++*@@*----=------------:::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-....................................................................................................................................................................  ..   ..  . ... ..  ..                                                                                                                                                                                                   .........  .  .:+**+==----===-----::.::..:-----====-------=--=+------------::..::--------:....... :-.:---=-----===============+*==+*==-----=#%*=+++++++++==+#%+------*@@*++++++++++++======++++@@*-----------+#%#+*@%****+++++%@+----*%@#++++++#%**%#+=======+++==============++++==+++==+++*#*=----------+#%#*++===============+###%*====#@%===++++++++++++==-=++++++++=%$$$$$$$$$$$$$$$$$$$$$$$$$%**$$$$$$$$$$$%++*+*#@@*++=++++++%@#+++++==+%@%+++++====-----==++=======++==============++==-.........:..:::::--============--.:-==============---------=========++++++#@%+-=------------:-::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::--:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:........................................................................................................................................................................  ...  .. .   ..                                                                                                                                                                                                   . . .... ......-***+==----===-----::.::..:-----=====------=--+=-------------:..:---------:........:- .----=----===============+*==**==-----=#@#=+++++++++==*%#=------=%@%*++++**#%#*+==+===+++*@@+-----------=##*==#@%*****+++%@+-----+%@%*++++*%*=+%#+======+++==============++++==+++==+++##+-----------+#%%*++===+===========+##+%%+===*@@+==++++++++++##*=-=+++++++++$$$$$$$$$$$$$$$$$$$$$$$@@$$#+#$$$$$$$$$$$@*+***@$@*++++++++#@%+++++==+%@%#+++======----==++=======++=============*#*==:::.......:..:::::--=============-::-==============-----=---=========+++++++#@%+--------=-----:---::::-:::::::-:-:::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::-:---:--------------------
@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#-. .......................................................................................................................................................................... .... . .    .                                                                                                                                                                                              ........  ......-***+==---====-----::.::..:-----=====-----=--=+=-------------:..:---------:........:: .----=----================*==#*==----==*@#++++*+++++++#%*--------+@@#******%@@*++++==++++*@@+-----------=##+--=%@#****++*%@+------+#%%*+++*%#=-+%#+=====++++============++++==+++++=++*#*=-----------+#%%*++===++===========##=*@%+==+%@*==++++++++++*%#*=+++++++++#$$$$$$$$$$$$$$$$$$$$$$$$@%@@+#$$$$$$$$$$$$$#***#$$$*+++++++#@%*++++==*%@%%*++======----=+++=======++=============##+=-:::.........::::::-==============-:--===============----==---=====+++++++++++#@%=-----------------::-::-:::------:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-:-----------------------
@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:.....................................................................................................................................................................   ....         ..                                                                                                                                                                                             ...  .... .. ....-***+==---====-----::..:::-----======-----=--=+--------------::-----------:........:: .----==---================*++%*==---===+%%+++*****+++*%%+---------#@@******#@@#*+++++++++*@@+-----------=**+---+@@#****+*@@+-------=*%%*++*%%+--+%#+====++++=========+++++++=+++++++=*##=------------=#%%*++===++===========##+=#@%+=+#@%==+++++++++++%@@*+++*+++++$$$$@@$$$$$$$$$$$$@$$$$$$$$$$$@@@@$$$$$$$$$$$#**+#$$@*+***+*#@%*++++==*%%#%#++======----=+++======+++============+%#+=-:::...:..::.:::::--==============-:-=================-=-===--=====+##*++++++++%@%=-=-----------:-------:::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::--------------------------
$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#-.........................................................................................................................................................................     ...                  .                                                                                                                                                                           .  .  . ..   .  ....-***+===--====-----::..::-+*=--=======---==--==---------------=++=--------:........:: .:----=---================+++%*==---==+*%%*++*****+++#@%=-------=-=%@%*****#@$%*+++++++++*@@+-----------=++=----#@@#***+#@%+--------=*%%*+*#%+--:+%#+===++++========+++++++==++++++=+##+=------------+#%%*++==+++===========##+--#@%+=*@@***++++++++++@$$$#*+***+++$$$@@$$$$$$$$$$$$$@$$$$$$$$$$$$$@@$$$$$$$$$$$$#****@$@+*****%@@*++++=+*@%*%%*+======---==+++======+++============*%#==-:::..:..::.::::::--===============--=======================--======*%%#++++*++*%@%=------=-------:----::::::::::-:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------
$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:..................................................................................................................................................................... ..     ...   .                                                                                                                                                                                        .   ....... ..  ... -***++==--====-----::..:--+*+--=======--===-=+=----------------+*=--------:........:. .:----==--================++*%*==--==+##%@#++********#@#=----------+@@%****#@$@%*++++++++#@%=-----------====----=#@@***+#@%=----------*%%*+#%+=--:*%#+==+++++======++++++++=++++++++*%*=-------------+%%%*++==++**=====++===#%+---*@%++%@%#%*+++++++++#$$$$@****++#$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%*+*@$%*****@$@**+++++#@%+#@%+======---=++++======++============+%%*==-:::..:..:::::::::-================--========================-=======*%%%#*+++*+*%@#=-----=------::---:-:::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------:--------------------
$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#-. ......................................................................................................................................................  ...    .........    .                  .                                                                                                                                                                     . .    . ............ .:*#*+++=-=====-----::..:--=**=-=======-====-==----------------:=*+--------:........:.  :----===-=================+*#*==--=+##+*@%++********%@*------------*@@#***#%@@@#*+++++++#@%=--------------------=#@%*++%@#=-----------*%%*##+---::*%#==+++++======++++++++==+++++++##+--------------*%%%*++==+++#*====+====%%+----*@%*#@%*#%#++++++++*$$$$@%****#$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$@@@$$@#**%@#****#$$#**++++#%#=+%@*==========++++======++============*%%+==:::..::.:::::::::--================--================================+##*#%#**+*+*%@#--:-----------:-:----:-:-:::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------
$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:....................................................................................................................................................... ...........  ..    ..                                                                                                                                                                                    .   .       ..............:+#**++=======-----::..:--=**=-===========--==-----------------=**--------:........:.  :-=---==-=================+##*==--+##+-+%@*+********%%+-------------#@@#***%@@@@#*++++++#@%+---------------------=#@%**%@*-------------*####*----.-*%#+++++++=====++++++++=+++++++*%*---------------*%%%*+++++++*#*===++===%%+=--=+#@@#%@*+*%%#*++++++#@$$@%#**#%$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$@@@@@@$$$$$@%*+*%*****@$@**++++#@#==#@%+======-==++++=====+++============#@#==-:::.:::.::::--:::--===================================================#%*++#%%#*++*%@#-------------:----:--::::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#-. ......................................................................................................................................................... ...   ...                                                                                                                                                                                             .. .. . ................+##*+++======------:..---=**=-===========--==-----------------=**=-------::.......:.  .-=---====================+##*==-=#%+---#@%+*******#@%+--------------*@@#**#@%#@@%******#@%+----------------------=%@%*%%+--------------+##%*----:-=#%*++++++=====+++++++==+**++++##=--------------=*%%#*+++++++=*%*==+++==%%+--===--#%#%#=-*@$@*+++++*%$$$#%**#@$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$@@@$$$$$$$$$$$@@#+*%#**#@$@***+**%@#===%@#======-=+++++=====+++===========+%%+==-::..:::::::---:::-====================================================*%#+==+#@@#*++%@*=---------:-:-:---:::-:::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:.......................................................................................................................................................... ........  . ..                                                                                                                                                                                       .......................+%#*+++===+===-----:.:---=**=-===========-==------------------=**=-------::.......:.  .:-=---===================+##*=-=#%*----+%@********#@%+---------------*@@###@@*+%@%******@%*-----------------------=%@%%*=---------------=*#*=------=#%*++++++===++++++++==+#*+++##+---------------=*###*+++++++++#%*++++==%%+-=:....:*%%#**@$$$@#****%%$$$@#%#%$@$$$$$$$$$$$$$$$$@$$@$$$$$$$$$$$$$@@$@$$$$$$$$$$$$$$$$@#*##**#@$@*****#@@#===+%%+=====-=+++++=====+++===========#@#===-::::-::::::---:::-====================================================+#%*===-+#@@%*+#%*=---------::-::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#=. ..................................................................................................................................................  .      ..     ..     .    .                                                                                                                                                                            .... . .................=%#*+++==+++==-----:.:---+##=-===========-==------------=-----=**=-------::.......:.  .:-=---===================+##*==*%#=-----*@%*******#@%+----------------+@@%#%@%=-#@@#****%@*++++++++====------------=%@@+-----------------=**+=------+%%*++++++++++++++++==+##+=*#*=---------------=####*+++++++==+%%#+++==%%+:........+%@@$$$$$@@%#+*%%$@$$%%%$@@$$$$$$$$$$$$$$$$$@@@@$$$$$@@@@@@@@@$$$$$$$$$$$$$$$$$$$@%*##**%@@*****#$$%+===#@#=======+++++====++++==========+%@*===-:::--::::::---::-===============================================+======*%#=--=--=*%%%*#%*-:---:--------:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-. ................................................................................................................................................. ..   ..  .  ..           .                                                                                                                                                                          .   ..  ......... ........-#%*+++==+++==-----:::--=+%#=============-=-------------=-=----*#=-------:::......... .:-==--=====+=============+##*=+%#=------=#%#******#@@+-----------------+%@%#@@#=-+%@%#**%%+--=====++++****+++===----+%@*-----------------=+++==------*@%*+++++++++++++++==+##+=**=----------------=#%##*+++++++=+#%%%#+===%%+.........:%$$$$$$$@#%%#*#%@@%$$@$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@%@@@@$$$@$$$$$$$$$$$$$$$$@%#***%@%*****%$$@#*==+%%*=====++++++====++++==========#@%+===-::---:::::----::-==============================================+++=====+%%*=-===--=+#%#%#*-::::--------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:...................................................................................................................................................... ..   ..  ...             ..                                                                                                                                                                  .. . ........ .............:#%**+++=+++==-----::---=*%#=-========+==-=-------------===----*#+-------:::.........  :-==---===+++============+##*=#%+--------=%%#*****#@@*------------------=#@%#@@#---*%@#*#%#------------====+++****++**##+----------------======-------#@%*++++++++++++++==+##*+*+-----------------+#%##++++++++*%#++#@#+=+%%+........:%$$$$$$$$$@%%%%%%@@@$$$$$$$$$$$@@@@@@@@@$$$$$$$$$$$$$$@@%%@@@@@@@@@@@@@@@@@@$$$$$$$$@#**%@%*****%$$@%#*==#@#=====++++++====+++==========+%@#===--:----::::-----:--===============================================++======#%#=====-----=+*%%*--:------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#=:................................................................................................................................................ ..    .... .....      .     .                                                                                                                                                                  .  .   . . .. .  . ..........*%#*+++=++++=-----::---=*%*==========+==---------------=-==---*#+-------:-::......... .--==---==+++============+##**#*=---------+%%#**#*#%@#-------------------=*%%%@%*+==+%@%%%#+==------------------==+****##+=---------------==----------=%@#*+++++++++++**+==*##*+=-----------------+%%##+++++++%@%+--=#@%*+%#+.......:%$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@$$$$$@@@%%%%%@@$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$%**%@%*****%$$$%#*+=+%%+====++++++===+++++=+=======*@@+===--:----::::-----:-================================================+++=====+%%+======------=*%#=-:::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::--:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#=:.....................................................................................................................................................      .                                                                                                                                                                                    . .... ..... .. ..........-%#*++++++++=-----:----=#%*=-========+==-----=-------=-=-==---*#+----------:.....:... .:-==---==+++============+*###*=-----------+#######%@%=--------------==+**#%@@$$@@@%%%@@$$$@%###**++===--------------==+*#***+==-----------------------+%@#+++++++++++##*===*%#=-----------------=+%%#*+++++*@@#+=---=*@@#%*=.......*$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@%%%@$$$@%%%#########%%@$$@@@@@@@@@@@@@@@@@@@@@@@$$$$$%*%@%*****#@@$%#*+==#@#===+++++++===++++++========%@#=====------::::-----:-===============================================+**++====+#@#======------::=**+=-::--::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#=:......................................................................................................................................................                                                                                                                                                                                        .  ...... .. ............:*#*++++++++=----------+%%+=========++===----=---------====---+#+-------:---.....:... .:-===--==++++===========+*#%*+-------------+#######@@#-------==+**##%%@@@@@$$$$$$@@@@@@@$$$@@@%%%%%%###*+=--------------===++***+==--------------------*@%*+++++++++*#%#+==+##+-----------------=*%%#***++#@@#+=--=---+#@%*=......-@$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@%%%@$$@%%#%#%%%%%%#%%%%%@$$@%%%%%%%%@@@@@@@@@@@@@@@@$$$#@@%*****%@@$@##+==*@%+==+++++++===++++++=======+@@*=====------:::--------==============================================+%%#+++====*@%+====---------:-=+=------::-:::::-:::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*=:....................................................................................................................................................  ....   .             . .                                                                                                                                                             ..  .... ....... .........+%#++++++++==--------=*%%==========++===----=--------======--+#*=----------:....:.... :-===---=+++++==========+*%%+---------------+######%@#=-==+*#%%@@@@@@@@@@@@@@@@@%%######%@%%%%%%%%##%%%%##**++==--------------==+***+=------------------#@%*+*+++++++*%@#+==+**=----------------=#@%#****%@%#+=-===----=*#*-:.....=@$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@%%%%%%$$@%%%%%%$$$$$$@#++=----::.::-=+#%@@@@@@@@@@@@@@@@@$%@@%****#@@$$@##===+%%+==+++++++==+++++++=======#@%+=====------:::--------==============================================#@@#+++====+%@*==----=--:---:--==---------::::::-:--:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*=:...................................................................................................................................................  .....                  .                                                                                                                                                            . .. ..........  ........-*%*+++++++==---=----+#@#=========+++===----=--------======--+#*=-----------:...::... .:-==---=+++++==========+*%#=----------------=*###*#%%##%@@@@@@@@@@@%%%%%%%###%%##*****##%%%%%%%%%###****######**++===------------==++++=---------------=%@#**+++++++*%#***+==+*=---------------+%@%****%@%#*=====-------:-:::....:@$$$$$$$$$$$$$$$$$$$@@@@@@@%%@%%%%%%@$$@%%%%%$$$$$$$$@#**=---===+*##%%@@@@@@@@@@@@@@@@@@@%@@%****#@%$$%%*====%@*=++++++++==+++++++======+%@#======------::--------==============================================+%%#%#+++====#@%+======------:::------=--:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#*=:...............................................................................................................................................  .....                                                                                                                                                                                  ... .... .. ....... ...:=*#*++++++==--===--=*@%+=========+++===----=--------======--=##=-----------:...::... .:-===--==++++==========+*%#----------------===*##%%@$$$$$$$@@%%%###*****+***++**#*++++++***+*****#####******######***++=-------------=+++=--------------+@%****+*+++#%*=+**+==++=--------------*@@#**#@%%*+++==---------.:.......-@$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@%%%%@$$@%%%%%$$$$$$$@%%%##%$$$@@@@@@@@@@@@@@@@@@@@@@@@@@%@@#****%@@$$%%+====*@#+++++++++==+++++++======*@@*=======-----::--------====+====================================++===#%#=*%#+++==+*@@*=======---------:---------::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#+=:............................................................................................................................................   ...  .          .                                                                                                                                                                    ........ .... ...........-=##*+++++==--===--+#@%==========+++====---==-------=======-=##+------------:..:::....::-==--==+++++===++====+*#*--------------=++==+#@$$$$$$@@%%##****++++++========++++================+++**###%%%%%####*###*+==------------====------------=#@%*****+++%%+--==++===+=------------=#@%**#@%###*+=-----------.........:@$$$$$$$@@$$$$$$@@@@@@@@@@@@@@@@@@%%%%@$$@%#%#%@@$$@@%%%#%%@$$@%%%@@@@@@@@@@@@@@@@@@@@@@@%@@#***#@@$$$%*=====+%%+++++++++=+++++++=======#@%+=======-----:---------====+====================================++==+%%*=+*%#*++=++%@%=======---------------------::::-:-:::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#+-:........................................................................................................................ ................... .      .                                                                                                                                                                         .  .... ....................:-=##+++++=---===-=*%@*=========++++====---==--------======--*#+=------------..:::....::-===--=++++++==++=====+##=-----------=+**##%%@@$$@@%@##***++++++=======---------=----------============++**##%%%%%##*####*+==------------==------------+@@#*******%%=-----====-==-----------+%@#*%@####*+=------------..........*$$$$$@$$$$$$@@@@@@@@@@@@@@@@@@@@@@%%%%@$$$@%%###%%##%##%%@$$@@@@@@@@@@@@@@@@@@@@@@@@@$$@@%@#***%@@$$@*=-====+%%*++++++++=+++++++======+%@#=========---::---------=====+===================================+++=#@#=+=+#%#*++++*@@+======------===-----------:----::-::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#*+-:..........................................................................................................................................  ..  ..      .                                                                                                                                                                   . .........................:-:=%#++++=---===-+#@%+=========++++====---==-----=--======--*#*=------:--===:.::::...:::-==--=++++++==++++====##=----------+*#%@@@@@@@@@%###**+++++=====----::::........::........::::---------====++*###%%%%#####**+==-----------------------=#@%******#%*---==------------------=*@%#%%**#*+=--------------...........#$$@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@%%%%%%%%%@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@%%#***@@$$@#=-======%@#++++++++=+++++++======*@@*========---------------=====+===================================++++%@*====+#@%*++++%@#=====--=---==-=-----===------:-::--:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%**=-:.......................................................................................................................................   ...         .                                                                                                                                                              .   ...  .......................:::+##++++---====*%%#====+++===++++=====--===-=--=--======--+#*=------:--===-:::::....::-===-=+++++++=++++====*#+--------=*%@@@@@%%@@%###****++====---:::.....            .:=+++++=-:....::::::------==++**###%##**++==------------------------+%%#*****##=---=+=-----------------+#%%#**##+=----------------...........:#@$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@%@@@$$$$@@@@@$$$$@@@@@@@@@@@$$$@@@@@@@@$$$$$$$$$@@@%#**#@$$$#=========#@#++++++++=+++++++======#@%+========---------------======+==================================+++*@%+=+=+++%@#++++#@%=======-===-=----=--==---------::----::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*+=-..........................................................................................................................................                                                                                                                                                                           .    . ........................:::*#*+++=--===+%@%+====+++==++++======++====-===--=======-=##==--------====::::::...::--==-==+++++++++++====*#+------=+#%@@@@%%%%%##*+++++===--:::....                :+#@@@@@@$$@%*-.........::::::---==++**###*+++=--::--------------------=%@#****#%*----=++=---------------=#%#*=*#*=------------------:............=%$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@%@@@@@@@$$$$$@@@@@@@@@@@$$@$@@@@@$$$@@@@@@@$$$$$$@@@%**#@$$@*==========#@%+++++++++++++++====-=+%@#=========---------------======++=================================+++%@#++++===*@@#+++*@@*==-==========-=-====----==---:::-::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#*+=:.......................................................................................................................................  ..                                                                                                                                                                           . ............................-##*++=--==+#@%*+===++++==++++======**=========-=======-=*#+=--------====-:::::...:::-====++++++++++++++=-+#*-----=*#@@@@@@@%%#**++====--::....                   .+%@@@@@@@@@@@@@%=.     .........::---==++****##*+--::--------------------*%%***#%*=-----=*+=-----------===+**++**+--------------------=-:............=#$$$$$$$$$$$$$@$@@@@@@@@@@@@@@$@@%@@@@@@@@@@@@@@@@@@@$@@@@@@$@@@@@@@@@$$@@@@@@@$$$@@@@#%@$@*=-==========*@%+++++++++++++++====-=*@@+=========---------------=======+=================================++*@@*++++==++#@@*++*@@#=======--====--=--==---=-----:::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-:::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%**+=:..................................................................................................................... .................                                                                                                                                                                           .. .............................+##+======*@@#*====++++++++++=====+#*=========--=======-*#+==-------=====-::-::..::---====+++++++++++++==+#*=---=*#@@@%%@@%#**++===--::...                      :#@@@@@@@@@@@@@@@%#=.          .......::--===++++++=::::=------------------=%%#*#%#=--:---=+*=-------------=++***+------------------------=-........... .+%$$$$$$$$$$$$$$$$$$@@@@@@@$@@@@@@@@@@$$@$@@@@@@@@@@@@@@@@@@@$@@@@@$$$$$$$$$$$$$$$@@@%%@@#=============*@%+++++++++++++++===--=%@%==========---------------========+========================+=======++#@@*+++++=+++%@%*++%@%+==-=====--=====-=---------:-::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#*++-:................................................................................................................ .................. .......                                                                                                                                                                        ... ....... ................:*%*=====+%@%*+===+++++++++++=====*#+-=========-=======-+#*==-------=====-----::.::---====++++++++++++++==##=---+#%@@%%%%#*+++==--::..                         .#@@@@@@$$$$$$@@@@%@%-                ....:::--=====-....--------------------#%#*%#+--------=*+=------------==+*+=----------------------------:...........:=*@$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$@@@$@@$$@@@@$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$@@##@@*=============*@%*++++++++++++++===--+@@*==========--=======---:--========++=======================+=======++%@%++++++=+++#@@#**#@@*=========-===-=----=----:---::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#**+=-....................................................................................................................................  ....    .. .                                                                                                                                                          .  . ....... .....................=##+===+#@@*++===+++++++++++====+##=-=========-=======-+##===------=====------:.::----===++++++++++++++==*#+--=+#%%%#%%%#*++==-:..                            :%@#%@@$$$$$$$$@%#*@@=                    ....:::--:.....--------------------+###%+---------=+*+-----------=====------------:.:---------------=-:..........:-+#@$$$$$$$$$$$$$$$$$$$@@@@$@@@@@@@@@@@@@$@@@@$@@@@@$$@@@@@@@@$$$$$$$$$$$$$$$$$$@@%*#@%+=====::======*@%*+++++++++++++===--=#@%+==========--========--:--=========+=======================+=======+*@@#+++++++=+++%@@***@@*==---=--===-==----=-----:---::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#+++=:.................................................................................................................................   .....  ..                                                                                                                                                                 ..   ..  ....................:*#*===*@@#*+===++++++++++++====*%*=-=========-=========##=-=-------=====-----::::----===+++++++++++++++=*#*---=*#%#*%@%#*+==-:..                             .*@%***%$$$$$$@#++#@%:                       ...........:--------------------=*%#*-----------=*+=----------=====--------------------------------=-::::.......::=*%$$$$$$$$$$$$$$$@@@@@$@$@@@@@@@@@@@@@@@@@@$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$@#++%#*%%+-====-..:-====+@@*+++++++++++++===--=@@#==========--==========-::-==========+======================++======+#@@*+++++++++++*@@#**%@#====-=--=----=-=-------::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#+++-:..................................................................................................................................   ..    ..                                                                                                                                                          .   .  .. ........................=#*==+%@%*++===++++++++++++====#%+--===================*#+-==-=---=======-----:.:-----==+++++++++++++++++##=---=+##**#%#*++=-:..                              .+%@%*+*#%@%#+==*@@=.                         .........---------------------=*#+------------=**=------------===----------------------------------===----:........:=#@$$$$$$$$$$$@$$@$$$$@@$$$$$$$$@@$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$%*==-:+%##%*=-===-:....:-==+@@*+++++++++++++==---#@%+==========-============::-==========++=====================+++=====+#@@*++++++++++++%$@**%@%====--=====-----------::---:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#+++=:...............................................................................................................................  ....    ..  .                                                                                                                                                         . .  ...........................:**==#@@#*+===+++++++++++++===+%#==-===================*#*-==--=---=======----:::-----==+++++++++++++++++##+-----=+*#*###*+==-:..                               :+%@@%*+++++*%@%=.                        ..........:--------------------=+*+=-------------+*+-------------------------------------------------------:----:....  ..-+%@$$$$$$$$$$$$$$$$@$$$$$$$$@@@$$$@@@@@@@$$@$$$$$$$$$$$$$$$%#+-..:--:*%#%#=-===-........:-+@@*+++++++++++++==--=%@#========================-:-===========+=====================+++=====+%@%+++++++++++++#@@#*#@@+=====-====----==-----:----:--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$$$$$$$@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*+++-:............................................................................................................................. ......   . .                                                                                                                                                      ..   .  . .  ........................=*+*@@%*++===++++++++++++====*%*==-===================+#*====-==--========----::------==++**++*+++++++++*%*-------.-*#%%*+==--:..                                .-+#%%%%@@@#+:                         ..........:--------------------======-------------=**::---------------------------:::---------------------=-----====-::...  .:-+#%@$$$$$$$$$$$$$$$$$$$$$$$@@@@$$$$@$$$$@@@%%@@@@%#*+=:.....:-=-=#%##+-==-:...........=@@*+++++++++++++=---*@%+==================+*+===--=============+====================+++=====+@@#++++++++==++++@@%*#@@*=========------=------:-:--:::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$@@$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#==+=:....................................................................................................................................   .                                                                                                                                                    . .    .      ..  .....................:+*%@%#+++==+++++++++++++=-==%%+===============+=======##=-===-=--=========---:::-----==++************++*%#+------..:-+%%#+==--:..                                   .:----:.                          ......... .---------------------==--=---------------+#=.:-------------:.-------::.:.:::----------------------------======--:...   .:-=+**#%%@@$$$$$$$$$$$$$$@@%%%%@@@@@%##***++-:...........--==*%%#+--::.............=@%*++++++++++++==--=@@*==================+#*====-==============++===================++++====*@@#++++++++++=+++#@@*#@@*======+=========--------:--::::--::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::---:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$@@$$@@$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#=-++-:..................................................................................................................................... .                                                                                                                                                          ..    ..........................+%@@#+++===+++++++++++++=-=+%%+===============+=======*#+-===-==-==========---::-----==+***##*********+*#%*------...::-+#%#*=-::..                                                                 ...:.........------------------------------------------=*=...------------:.:-----::.......:--------------------------------======-::...     ...:::------===++++++++======--===-::.............:-===#%#+:.................=%%**+*+++++++++=---#@%===================*#*====================++==================++++====#@@*++++++++++=+++*@@#*@@*==========-====------------::-:::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*::=+=:..................................................................................................................................   .                                                                                                                                                         ..   .  .......................:*@@%+++++==+++++++++++++=-=*%#================+=======*#+-======--=========----------==+***#%%#**********%#=-----......:-+###*+-:..                                                             ..::::......  :-------------------------------------------=*+:....:---------:..:----:.........::-----------------------------------====-=---:......   ..   ......................................:--:=*#+:................:.*@%****+++++++++=--+@@*==================+##+=====================+==================++++====#@@++++++++++++++++%@%#@@*==============--------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$@$@$$@$@@@@@@@@$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+:.-++-:..............................................................................................................................  . ..                                                                                                                                                       . .     .. ....................:-#@@*++++==++++++++++++++--=#%*================++======+#*=-===-==-==========---------==++***#%@%#********#%*-----.........:=*###*=-.                                                         .::-::......  .:=+=-------------------------------------------+*=......:-=------...---:...........::---------------------------------------======---:::................................................:+*+:.................:.*@%****++++++++==--#@%===================#%*=======================+===============+++++++===%@%++++++++++++=+++*@%#@@*==========-===--------=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-.:=+=:.................................................................................................................................                                                                                                                                            . .   .              .....................:-+@@#+++++=++++++++++++++=--+%%+================++=======*#=-======--==========--------==++**#%%%@%#####***#%%=----......... .:-=+*##*+=:.                                               ..::-==--::...  ..:-+++=--------------------------------------------=*+:.......:-=----....::..............::---------------------------------------------====---:............................................-++:...................:#@#****++++++++=--+@@*==================+%#+========================+==============+*+++++==+@@%++++++++++++=++++#%#@@*===+=======-===-----------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::----:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$@@@$$$$$@$@$@@@@@$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:.-=+-.................................................................................................................................   ..                                                                                                                                        . .       .   .    ...................::=%@%+++++++++++++++++++++=--+%%+======+=========++=======*#+--======-===========-------==++**#%%##@@%####*###%#----........... ...::-=+****+=-:..                            .....::::-==+++=--:...  .:-==+++=-----------------------------------------------=*+-.........:----....:................:::-----------------------------------------------==--:..........................................:-=:....................-#@#****++++++++=-=#@%===================#%*=========================++=============+*++++++=+@@#++++++++++++==+++*%%%%*====+======--======-=------::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$@@@@@@$$$@@$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#=::-==:..........................................................................................................................  .....  .                                                                                                                                     .  . .    .   . .    ..................::-#@%*+++++++++++++++++++++===*%#+======+=========+++======+#*--==================-------==+++*#%@#+*%@@#######%%+----................  ...:-=+****++==----::::::::--------=======+++++++=-::..    .:=+++=------------------------------------------------------+*=...........:--.......................::----------------------------------------====--::.............................................:::....................:*@@****++++++++==-+@@+========+====+====+%%+==========================++===========++*+++++++*@@#+++++++++++++==+=+*#%%+=====+====----===-===-=-:--:::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$@@@@@@@@@@$@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-:-==-.............................................................................................................................           ..                                                                                                                             ... ..   . .. . . ....................:::*@@*++++++++++++++++++++++==*#%#=======++=========++=======**=-===================--=---==++++*%@%+==#@@%######%#=---.....................     ..:-==+++++++++++++++++=====--------::....    ..-=+*+=-::::-----------------------------------------------------=*+:......................................::-----------------------------------===---:........................................................................-%@%****++++++++===%@#========+====+=====#%#============================++==========++*+++++++*@@*++++++++++++++====+*%#+=====+==-==-==-===---------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------
$$$$$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$@@@@@@@@@$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+::-=-:........................................................................................................................... ..                                                                                                                                           ..  .. .  ........................:+%@#++++++++++***++++++++++=+*%@*=======++=========++=======+#+:-===================-==-====+++*#@%#==-=%@@%#####%*----..........................      ......::::::::::..............     .:-=+*+=-...:----------------------------------------------------------+*-.........................................::---------------------------------::............................................................................+@@%****++**++++==*@@+==++===++===++====+%%+=============================++===========+*++++++#@@*++++++++++++++++===+#*+==+======-====-===-==-------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------
$$$$$$$$$$$$$$$$$$$$$$$@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@@@@@$$$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-:-==:............................................................................................................................  ..  ....                                                                                                                               .      ...    .....................:+%@#+++++++++++#%*++++++++++=+#@@#=======++=========+++=====-=**--=================+=========+=++#%%#=++--*@@%#####%+---................................................................:-=+++=:....:-------------------------------------------------------------+*=...........................................:::-----------------------------:..............................................................................#@@#********++++=+%@#===++===++==+++====#@%+=============================+++==========+*++++++%$@+++++++++++++++++++++**+===+==-==-======--=-=--:-:::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+::==-.............................................................................................................................   .  .                                                                                                                              .   .   ..    . ....................=%@#+++****++++#%%%#+++++++++=+%$@*=======+++========+++=====-=**=:-================++========++=+*%@#+-++=-=#@@%#*###+-- ............................................................:-==--:....:-----------------------------------------------------------------=**:.............................................::--------------------------:::............................................................................:%@%**#*******++==#@%===+++==+++=++++===+%@%#==============================+++=========+*++++++%$%+++++++++++++==+=++++++===-=====----==------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-:-=-:............................................................................................................................                                                                                                                                           ..   ...... ...............=#@%++*******+*#%%%@#+++++++++=*@$@+=======+++========+++======-+*+:-================+++=======++=++%@#*----=--+#@@%**##+-....................................................... ..:--==-:::::----------------------------------------------------------------------+*-................................................::-------------------:::::..............................................................................=@@%##%#*****+++=*@@*===+++==+++=++++===#@%#%*==============================++==========**++++*%$%++++++++++++++++++=++++===========-----------:::-::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#=::=-:.......................................................................................................................... ..                                                                                                                                    . .... . .. ..................-#@#++*******+*%@#*%%*++++++++++@$@%+=======+++========++++=====-=**-:================+++========++=+#@%*---------=*%%#*#*=-..............................................    ....::----------------------------------------------------------------------------------=*+...................................................:::::::::::::::::::..................................................................................#@@#*#%%#****++++%@#===++++=+++++++++==+%@*+#%*=============================+++=========+*++++*@$%=+++++++=++++++++===+===========----=-----:::::--:-:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+-:--:................................................................................................ ......................  ...    .                                                                                                                                      .... ................:#@#=++*******#%@#-+@%*+++++++++%@@@#+=======+++===+====++++=====--+*+:-===++===========+++=======++=+*%%*=----------=+*##*+-......................................    .....:::----------------------------------------------------------------------------------------=**:.......................................................::::::::.......................................................................................:%@%**#%@#*****++%@%====+++++++++++++===#@%==+%%+=================++=========++++=========**+++*@$%+++++++++++++++=+++=+=====+==--==-=----:=----::-:--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-:---........................................................................................................................  .....  .                                                                                                                                 . .. .................:#@#==+*******#@%+::#@#****++++*%@%%%#+====+==++++==+====++++=====--=**--===+++==========++++======+++=+%@#+-------------==+*+:.................  .           .......::::-----------------------------------------------------------------------------------------------=+*=......................................................................................................................................................*@@#**#@@#****++#@@+===++++++++++++++==+%@#===*%#=================+*==========++++========**+++*@$%+=+++++++++++++++==+=+=+==+====-=---=---------::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#=::--:.....................................................................................................................  ....   ..                                                                                                                                 .  ....... ..........#%#==++***++%%#+:.:*@%*****+++*%@**%%*======+=++++==++===+++++====---+*=-===++++=========+++++====+++==+#@%+----------------==-........................::::::::----------------------------------------------------------------------------------------------------------+*+.....................................................................................................................................................:%@%***%@%*****+*@@*====+##*++++++++++==*@@+==-=#@#================+*===+======+++++=======+#*+**@$%+=++++++++++=+++=+=+++=+=========------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+::--:.......................................................................................................................     ..                                                                                                                                .   . .... .... ... :*%#=-=+***#*%%+:...=@@#*****++*@@*-*%%*+=====++++++==++====++++=====---++--===+++=========++++++==+*++==+*%%*------.:.:--------:................:-------------------------------------------------------------------------------------------------------------------------=**:....................................................................................................................................................+%%#**#@@#******%@%====+#%%*++++++++++==#@%===--=#@#================*+===++====++++++=+++==+*****%$%++++++=++++====++=+=++===========----:-----:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::-:-:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@$$@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+::--:..................................................................................................................... ....    ..                                                                                                                           .  . .. ......  ....:+%*=-=++#%@%#=:.:...#@@*******#@@+::*%%*+=====+++++++=++====++++=====---=*+-===++++=========++++++=+##++=++%@#+---:..  .:-------:................--------------------------------------------------------------------------------------------------------------------------=**=...................................................................................................................................................:#%#***%@@#*****%@@+===+#@%%#*+++**+*++++%@*=--===+%@*===============**===+++====+++++++++++=*#***%$@++===+++++========+======-=-----=-=-:------:--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=..--:.....................................................................................................................  .    ..                         .                                                                                                    . .. .. ..  .. .:=#*===*#@@%+-..:::..-@@#******%$@=.::*%%+++===++++++++++++===+++++====----++====+++++========++++++==*#*+==+#@%+-:. ..... .------:...............:--------------------------------------------------------------------------------------------------------------------------=*#+...................................................................................................................................................+%#+**%@@@#****#@@*-===*@@%%#********+++*@@+--=====+%@*==============+*+===++++==+++++++++++=+##**#$$*=+=++++++=======+===-===-=-=----------:--=--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-..--:...................................................................................................................  ...                                                                                                                                . .   ...       .:=+*+**###+-. ..:::...#@%*****%@$%-.:::+%%++++==++++++++++++===+++++====--++=++===++++++++=====+++++++=+##*==+*%%*- ........ .:----:...............---------------------------------------------------------------------------------------------------------------------------=*#*-.................................................................................................................................................-##++*%@@%@#****@@#+===+%@#%%#*****##**++#@%=-=======+%@*====+=========**===+++++++++++++++++=+*#***@$#===+++++======++==--=----=--=-=-=--==-:::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*: .:-:........................................................................................................................      .                    .                                                                                                   .   .... . ...:=+++++==-:....-=-.:...=@@*++*%@$@*::-:::+%%+++++=++++++++++++===+++++====-=**--++=++++++++++=====+++++++=+##+=++%@#+........... .:--:...............---------------------------------------------------------------------------------------------------------------------------=*%*=.................................................................................................................................................+#*=*%$%#%@#***%@%+**+=#@%*%@#*****%@#*++%@#==========+%@#===++========+*+===+++++++++++++++++++##**%$@+++=++++++=+==+++=------=----==--=-=--:-----::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. .:-:.......................................................................................................................  .  .    .             .                                                                                                   ..       ......:---:::........--:.....=%%*+*%@@%+=::::.::+%%+++++=+++++++++++++==++++++====+#*-:=++=++++++++++====+++++++==*%*=++#@%+:............ :-:..............----------------------------------------------------------------------------------------------------------------------------=*%*=................................................................................................................................................-**=*@@*-=%@#**#@@+=*#++@@+-#@#****#@@%*+*@@*===========+%@#===++========**====++++++++++++++++++*#**#$$*+++++==+++++++++===-==--=-=-===---==------:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-...:::................................................................................................................  ......  . .  .             .  .                                                                                                 ..      . ......... .......:........-%%*+#@%*=:.:::...::+#%*++++=+++++++++++++==++++++====*#+--:-+***+++++++++===+++**+++=+#%*++*%@*=..............:...............----------------------------------------------------------------------------------------------------------------------------=#%*=...............................................................................................................................................:++=*@%#..:%@#**@@*:-##+#@%==*@%****#@@%*+#@@+============+%@%+=+++=======+#+===+++++++++*++++++=+*##**@$%+++=+==++++++======-==--------==----------::-:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::-:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ..:::....................................................................................................................      .                   .                                                                                               .  ... .      .......................=%@%#%#+-..::::::::::=#%*++++**++++++++++++==+++++++===##=---:=*%%*+++++++*#*=+++***+++=+%%*++#@%+:............................:----------------------------------------------------------------------------------------------------------------------------=##*-...............................................................................................................................................-++#%#+-..:%@#+#@%:.-##+#%*==+%@*+**%@@@#+#@%===============#@%*=+++=======**====+++++++++**++++=++*#**%$@*=+=++=++++=+======-=---:-=--===-=-:--:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-.....::................................................................................................... .................      ..                     ..        .                                                                                     .       . ..................:-*@$%*=-:...:::::::::::-*%#+++*%#+++++++++++++==++++++==+##=-----+#%%*+**+++*%%*+++*##*++==*%%*+*%@*=............................-----------------------------------------------------------------------------------------------------------------------------+##*:..............................................................................................................................................-+**+==:...:%@#+@@+..-**+##====#@#+**%@%@%*%@*==============-=*@@#++++======+**====+++++******+++=++*##**@$%++===+++++==========---=---:-=---:::---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:-::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+......::...................................................................................................................   .. ..                         .       .                                                                         .                  . .............:-==+%$%+:...::::::::::::::::+%#+++#%#+++++++++++++==++++++==*%*------=*%@#*******#%%++**#%#*++++#%%++#@%+:..........................:-----------------------------------------------------------------------------------------------------------------------------+##*:.............................................................................................................................................-++=:.::.:..:#%**@#-..-*++#*====+%%*+*%@##@#%%+==============--=*%@%*+++======+*+===++++++******+++=+#%%**#$$*===++++++=++========----:----:-:::::::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-......::.......................................................................................................................  . .    ..   .....  ..                                                                                                       . ............::::::=#%*:.::.:.::.:::::::-::::-*%*+*#%#+++++++++++++=+++++++==#%+-------=#@@#*******#%#+***%%#*++++#@#+*%@*=..........................------------------------------------------------------------------------------------------------------------------------------+##*:............................................................................................................................................:==:.........:+#*#%+:..-+++*+=====*%%++#@#+#%%#+=============-=*%*+#@@#+++======**====+++++*******++++#%%#**%$%+=++=+++========---=----::-::--:::-::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+.......::.............................................................................................. ...  . ..............  .. .     ..     .....                                                                                                         . .. . ...........=#*=:..:..:...::::::::::::::+%#**#%%*++++++++++=++++*##++++#%+--------=%@%*******#%%#****%%#*++++%@#+#@%+..........................------------------------------------------------------------------------------------------------------------------------------+##*:............................................................................................................................................::............-**%#-..::==+*+=====-*%#+*%%++#@%+============-+#%*=++*%@#*+++====+**====++++********+++*%@%#*#@@#==+=++=====-=====------:--:::-:-:-:::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-........:....................................................................................................................   ...      .    . .     .     ..                                                                                   .       ...     ........ .-+*=:....:......::::::::::::::-#%*+#@%*****++++++=++++#%#++++%%=---------+@@%*******#@@#****%@%*+++*%@#*%@#-.........................------------------------------------------------------------------------------------------------------------------------------=*%*:............................................................................................................................................:.............:=*#*:.::--==++=======*%#+*#*=+##*+===========*%#=-=++++#%%*+++====+*+===++++********++++#@@@#*#@@+===++===========-----------:::-::::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. .......................................................................................................................... .........    .   .             . .                                                                                  .      . . . . .. .....:=+=:.............::::.:::::.::::=%%*#@%******+++++=+++#%%#*++*%#=----------*@@%****##*%@@#*#**#@%#+++*%%##@%+.........................-------------------------------------------------------------------------------------------------------------------------------+%#:...........................................................................................................................................................-*#+::::--============*##*##++++++++======-+#%*::=++++*###%#+++++==+*+===++++*********++*%%%@#*#@%==-======-=====------:----:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-...............................................................................................................................  .. ..   .     .           ...                                                                              ..           .     ..  ..---:...........:...:::::::-::::::::#%##@%*******++++==+*%%#%*++#%*=-----------#@@#######%@$@###**#%@%*++*%%#%@#:........................:------------------------------------------------------------------------------------------------------------------------------=##=...........................................................................................................................................................:=*+:::--=============+****#*++=========--*%%=.:==++*#%*++*##****#*+**+===+++**********+*%%#%%%##%%=======-------------:::=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*-.............................................................................................................................  .. .    .       . . ...   .        .                                                                       .         . ..    . ....::...................:.::::::::.::::=%%#@%********+++==+#@##%#++%%*------------=#@@######@@%@@#######%@%*+*#%#%%=.........................------------------------------------------------------------------------------------------------------------------------------=+*+-...........................................................................................................................................................-+=::---============+*+=++***========--+%@*:..-+++*%%*==++******#%%***+==+++**********++#%#+#%%##%#=======--:-:--------::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::--::---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*............................................................................................................................ .. ......    .. ..   ...     ....   .                                                                       .. . .   . ....      ...  ................:....::-::-::::::.:*%%@@**********+==*@%+#%#+*%@+-------------=#@@#####@%+*@@#####*#%@@%**##%%#:.........................-----------------------------------------------------------------------------------------------------------------------------=+++*-..........................................................................................................................................................:==::--============+**=====+++=====--=#@#=...:=+=*@@#++=+++****+*%%###*===+++**********+*%%*++#%##%*===-=----:::---:::::::::---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----:---------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$@@$@@$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#:............................................................................................................................. ....... . ....     ..   ...  .  .     ..  .                                                              ....   .  .. . ..   ...  ..................:...:::::::::::::::#%@@#*********+++%@*=#%#+#@%=--------------=#@%####@@+-+%@%######%@@@#*##%%=..........................----------------------------------------------------------------------------------------------------------------------------===----:........................................................................................................................................................:-=---=============*#+===========--=*@%+:....:+++%@@#++++++******%%**#%#+==++***********+#%#+++*%%##+------::-::-:::::--::---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=.............................................................................................................................   ..  ...    .    ... ..        .                                                                        ......                ..  ..................:.::.::::.::::...-#@@%**********+#@%=-#%#*#@%=---------------=#@%###@@*--+%@%#####%%#+#%###%*:..........................---------------------------------------------------------------------------------------------------------------------------===-:.:::........................................................................................................................................................:----============*#*==========-==*@@*-.....::+*%@##%#*++++******#%#++#%%*+=+*************%@*++=+###*=------::::::::--::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-. .................................................................................................................... .. .......  ..    .    ......  .     .                                                                          ....        .  ..   .. ..............:....:..:.:::..::.:..:.=@$@***********%@*-=#%#*%@%=----------------=#@%##%@*=--=%@@####%@#..+###*#+...........................:-------------------------------------------------------------------------------------------------------------------------==---...........................................................................................................................................................:::--============+##+======--==*%@%*-.......:-+%@#=+#%#**++*******%%#++*%%%*+++***********#@%++==++**+=--:-::-::::::-:::-:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#=.  .............................................................................................................. ..............  .................      .    ...         .   .                                                       . .       .   ...............................::-:::-::::..::*@@#**###****%@%+=+#%#*%@#------------------=#@%%%@#==--=#@@%###@%-...-++**=...........................:------------------------------------------------------------------------------------------------------------------------==---...........................................................................................................................................................:::--============*#*===---=+*%@@#=:........::+%@#+==+#@%**********#@%++=+*#%%**+***********#@%==-===++=--:-::::::::::-:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+:. ............................................................................................................ ..........  .........   .  ......   .  .   ...          .                                                           ..  .    ............ ..................::.:::::...::-::::::-@$@#####***#@@*==+#%#*%@*-------------------=+#%##+------*@@%##@@=-:. .:=**-...........................:----------------------------------------------------------------------------------------------------------------------------........................:.................................................................................................................................:::---===========*#*----=+#%@@#+-..........::=%@#++++=+#@%**********%@#++=++*#%%#************%@#=----===-::-::::::-:::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::-:------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+.  ..............................................................................................................................     ................  ..   .                                                                    .   . ..........................:.......::::::.::::::::-::-:*@@%######*%@%+=++#%#%@@*=--------------------=+*#+-------+%@%#%@*-.... .:++-............................--------------------------------------------------------------------------------------------------------------------------:......................--:................................................................................................................................::::--===========+**=-=+#%%#*=:.............:-%@%++++++++#%@%********#@@*++=++++*%%%#*********#%@*==------:::::-:::::::--:::-:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---:--:----------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-. ...................................................................................................................................................  .....   .                                                                    ....................................::::::..::::::-:::::%@@#######@@#===+#%*#@@##*=--------------------=**+=------=#%%%%#:.......:==:............................:--------------------------------------------------------------------------------------------------------=*+-------------.....................:=+-.................................................................................................................................:::---==========+###*##*+=:...............::-#@%+++++++++++#@@%#******#@%*++++++==+#%@%#*******#@@*+------::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-:--------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:  ................................................................................................................................................  .   ..        ..     .                                              .  ..    . .. .............................::..:::::.::::::--::::=@$%######@@+===+#%**@@==*##+=------------------======-----=*##%%=.........-:.............................:-------------------------------------------------------------------------------------------------------=*#+=-----------...................:+#*-..................................................................................................................................::---=======++**#@#+-::..................::-%@%*++++++++++++*#@@%#*****#%%*++=++===-=*#@@%#*****#%%*=-:-----::::::-:::--:--::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::--------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-. .................................................................................................................................................   ..  .     ..     .                                        .      ..   ...............................:......::::::::::::::::::::::+@@%####%$%===++#%*#@%+=:-+*#+-...----------------===-------+*%%*..........::..............................:------------------------------------------------------------------------------------------------------=*#*=----------..................:*@%=...................................................................................................................................::--========++++#*-....................::-+%@%+++++++++++++++++#%@@%#***#%%*+++++===---+*%@@%#**+#%%+--------:::---:--:----:::-::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:----:-------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=. ...................................................................................................................... ..........................    ..           .   .                                     ..  . . . .............. .......................:..::::::::::::::::::.::-*$@%###@@%+=+++#%+*@#++=-.:-**+-.---------------------------+#%#=..........................................:------------------------------------------------------------------------------------------------------=+%%#+=-------:................:#$%-...................................................................................................................................:::--===========*#=..................:-===*@@%++++++++++++++++++++*#@@@%#**##*+=====-------=*%@@%#**%#=-----:--:::-:---:::----:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::::----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+:  ...............................................................................................................................................   ..     ..   .                                       .       ..   . ................... .............:.:.:.:.:::::::--::::::::::::#$@###@@#+++++#%+*%#++++=:..-+#*+=-------------------------=+%%*:...........................................:------------------------------------------------------------------------------------------------------+#@%=-------=:...............:++:....................................................................................................................................::--===========+#+:.................-=+++*@@%++++++++++++++++++++++++*#%%%%#***+=====---------++#%%##%*=----:-:-:-:-:-:--:-:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*-. ................................................................................................................................................     . ..   .   .  .                               ...  ..    .     ....... .. .........................::..:::::::---:----:::----#$@##%@#+++++#%+*##*++***=:..:+##*=------------------------=*%#*:............................................------------------------------------------------------------------------------------------------------=++=---------................. ...................................................................................................................................:::--===========+**:................:-++++#@@#++++++++++++++++++++++++=+=++**##**+======---------::-=+*#%#-----:-::::-:--:--:---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-. ..............................................................................................................................................  .                ..     .                        ..   .. .    . . .................................:::::...::::::-:::---:----=--=#@%#%@#+++++#%**##**+*****=:. :=*#*=-----------------------=*##+:............................................:------------------------------------------------------------------------------------------------------------------...................................................................................................................................................::---============**-................:=+++*%$@*+++++++++++++++++++++++++===+====++++=======----------:---=*#*=::-::-::::-::::--:::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::-::-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-. .............................................................................................................................  ..................      .          ..                        ....   .. .. .     .... ...........................::::.:::..:::::::::::-------==--=#%##%#+=++=*%*+#**+++*****+=-. .=*#*=-----------------------+#*+:.............................................-----------------------------------------------------------------------------------------------------------------.................................................................................................................................................:::---============+*-...............:-+*++#@@%++++++++++++++++++++++++++++==================--=----:--------=*+-:-::-::::-:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--:-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=. ............................................................................................................................................ ...  ...     ..             .. .             ...... .... .      .... ... ......................:.:::::....:..::.::::::--:-===-=--=*%*#*+=++=*%#+**++++**+++***+-. .-*##+----------------------+#*+:.............................................:----------------------------------------------------------------------------------------------------------------...............................................................................................................................................:::---============+#+:.............:-++++#%@%*+++++++++++++++++++++++++++======-=========-----=---------------=+=----:::::-::::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-. ............................................................................................................................. .......... ........     ....  ..          .           ..    ..... .. .      ....  ....... ..................::::-:::::.::::::::::---:--======--=*##*+==+=+%#+**++++**********+=: .-*%#+---------------------+**+-............................................:----------------------------------------------------------------------------------------------------------------:.............................................................................................................................................:::--=============+#*-..........::-=++**#@@@#+++++++++++++++++++++++++=+=+=======--=========-:----------:--=-::-==---:--::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-.......................................................................................................................... .................... .  .. ...  ...  .   ..    . .........  .    .   .           ...............................:.:-:::::.::.:::::------=-===+=====+*##*+==+=#%****+++++**+++*****+=:..-#%#+---------------------**+-...........................................:-----------------------------------------------------------------------------------------------------------------...........................................................................................................................................::::--=============+##+-:::::--==+*+**##%@@%#++++++++++++++++++++++++++====+===-==--===========---::-:::--:------------:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: ............................................................................................................................................   ..  .    .. ... ....      . .. .......  .... ...          .........................:..:..::::::::::-:::::-:---=-----====-==+++*#*++=+=*%**+++++++*********++*+=:..+%%*=------------------:-+**=............................................:---------------------------------------------------------------------------------------------------------------...........................................................................................................................................:::--=============+###*******###%%@%@@@@%#**++++++++++++++++++++++++=+++=======--==============--:---:::-------:------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*: .......................................................................................................................................... ...      .    ..  ...   ... . . ....... .  ....... ...    ...  ..........................:::::-:-------::---------:---========+++++++++++##*++*+**********+**+****=:.-*%%*=------------------+***+:.............................................:-------------------------------------------------------------------------------------------------------------........................................................................................................................................::::--=============+#####%@@%%@@@$$$@@%#%%*+++++++++++++++++++++++++++++++++======--==-==-====------::----:-----::-:-------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ............................................................................................................................................... .....     ..   . .  ............. ............       ........................::::.:.::::-::---------::------==========++++++++++++*#*++++*********++**+++****=-=*#%#+=-----------------+*##*:...............................................:----------------------------------------------------------------------------------------------------------.......................................................................................................................................::::--============+*%%%%%@@$$$@@%%%%###**%%++++++++++++++++++++++++++++++=+++=====-===-===-==-==-----::-----------------:--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=. ................................................................................................................................................ ....      . ............................... ..    ....  ...................:::::::::::::-------:-:::--=----======+++++=++++++******************+++*+++*+***##%#*#%#+-----------------+*#%#=................................................:---------------------------------------------------------------------------------------------------------.....................................................................................................................................:::----============*######%@@@@%##########@%++++++++++++++++++++++++++++++===+========--=-=------=--:--::::----:----:-----:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@$@@@@@@@@@@@@@$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-...........................................................................................................................................  .. .. .. .    . ........ ..........................     .......................:::::::-::--:--:---::-:::------====+++++++++++++++++****+**********+++++******+**#@@#=+%%*=----------------+*#%#=................................................---------------------------------------------------------------------------------------------------------:.................................................................................................:.................................:::----============+**#####%@%#@@%########%@%+++++++++++++++++++++++++++++++++==========-====--------:----:--:--::--------:---:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----::-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: ........................................................................................................................................  ... ... ..... .  ....... ...................... . ... ..............:.......:.::::::.:-:::::------::-:------======+++++++*++++***************+++**++++++*+*******%@@#==*%%+=--++=----------++*%%=................................................---------------------------------------------------------------------------------------------------------.............................................................................................:.:::................................:::----===========+**#######%@%*#@@########%@%*++++++++++++++++++++++++++++++++======-==--=====---=---------:::---:----:::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ........................................................................................................................................... ..... ... . .. ..... ....................... .. .  .....................:::.::::.:::-::::-::--:--:--=-=-====+=++++++**+**++********************+++***********#@@%#*++*#*+=##=-----------=+*%%=................................................:-------------------------------------------------------------------------------------------------------............................................................................................:----:...............................:::---============+**########@@#++#@@#######%@@*++++++++++++++++++++++++++++++++=+++=-=--=-=====---=----------:------::--::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@$@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=. .............................................................................................................................................   .......  .... ..........................    .. .........:............:::::::::::-:---------=--=---=====+++++++*++*+*************************************%$@####*####%#=------------=+*%%=...................::............................-------------------------------------------------------------------------------------------------------.........................................................................................:----::...............................:::----===========+**########%@@*+++#@@#######@@#+++++*+++++++++++*++++++++++++++===+===---====-===-==--=------:----:-----:::::::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-  .............................................................................................................................................  ......  . .......................................................::.:::--:-:::::---=-===========+===+==+++++++++++*************************************%$@#######%@@#=-------------==+%%+...................:::...........................------------------------------------------------------------------------------------------------------........................................................................................:-----:...............................:::----===========+**#########%@%+++++%@@%#####%@%*++++++++++++++++++++++++++++++++=============-=-=====--=----------::-:--:--:::::::-:---:--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:-::--:--------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@$@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*: ............................................................................................................................................  ..... ...........................................................:::::::-::---::----=========+=====+====++++++++***************************************#@@#######%@$%#*+=-----------==+#%+:...................:-:.........................:-----------------------------------------------------------------------------------------------------:.....................................................................................:--=---:...............................:::----===========+**##########%@%*+++++%$@%####%@@#++++++++++++*+++++*++++++++++++=+=====================---------:-------------:::::---::-::-:-:::::::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ...............................................................................................................................................   ..........................................................:.:::::----------====---====+==-======++++++**+****************************************#@@%######@@%####**++=-=------==+*%*:...................:-:.........................------------------------------------------------------------------------------------------------------...................................................................................:--=---:................................:::----===========+**###########%@#+++*+++#@@%####%@%+++++++++**+*+++++++++++++++++++++==================--------=------------------------::--::-::::::::::::::::-::::--::::::::--:-::::::::::::::::::::::::::::::::::::::::::---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@$@$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=. .......................................................................................................................................... ................................................................:.::------=-=======+========+====+++++=++++**++***************************************#@$%#####%$@#**####*******++===---#%#-...................:--:.......................------------------------------------------------------------------------------------------------------................................................................................::------:::::.............................:::----===========+**############@@#++++++++#@$@####@@#++++++++++++**+++++++++++++++++++++===+=+=========-==--------------==----------------:------::::::::::::::--::::--:::::::-::::::::::::::::::::::::::::::::::::::::::::----:--:---------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#- ...........................................................................................................................................................................................:........:.....:.:----------==============+++===++++++++++*******************************************#@$%####%$@%#####%@%*+====++++++++*%@%=....................-=:.....................:------------------------------------------------------------------------------------------------------..........................................::::::::::::::::::----------------------====---::..............................::----============***#############@@*+++++++=+*%$@%##%@@*+++++++++++++*+++++++++*+*+++++++=+++++=========-=--------:-------==-----------------::-:---:::-:-::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::::::::::::-:-:-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*: .........................................................................................................................................................................................................::::-----=--==-==========+===+++++=++++++++**+***************************************#@$%###%$$%#######@@%##*++====+#@%##@@@+....................:==....................:------------------------------------------------------------------------------------------------------..::::::::.....:::::::::--------------------------=======================------==++==-::................................::----============***#############%@@*++++++++++*%@$%#*%$%+++++++++++++**+++*++++****++++++++=+++==========----------------------------------------:-:::--::::-::::::-:::::::-::----:::::::::::::::::::::::::::::::::::::::::::::----::---------------------------
@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ......................................................................................................................................................................:..................................:::---:--=======+=============+++++++++++++++*+************************************#@$%##%$$%########%@%##########@$@###%@@*:....................=+:...................-----------------------------------------------------------------------------------------------------------------------------=----=------===============--------:----------::::--=++++=-::...................................:----============+***##############%@@*+*++++++++**#%$@#*@$%++*+++++*****+*+++++*+****+++++++++=++++=========------:--:-----------------------------::::::-::-:-::::::::::::::::---:-::::::::::::::::::::::::::::::::::::::::::::::--------------------------------
@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@$@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-  .............................................................................................................................................................................:..:..:.................::-::::::--:-====+=====-=-=======+*+++++++++++++++***********************************#$@##%$$%#########%@@##########@@%####%@@#-....................-+=...................---------------------------------------------------------------------------------------------------------------========------------=====++++++*******+***++++++===----:::::-=++++=-:......................................::---=============+*#################%@%*++++*+++++++**#@@%#@@#+++++++++*+*+++++++++++**++++++++++++++========-=--=-------------------------------:::::-::::::-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------
@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: ...............................................................................................................................................................................::..:.:..............:::::-:-:----====+=============++====++===+++++*+************************************%$@#@$@%###########@@%########%@@%#####%@@%=.....................=+:.................:-----------------------------------------------------------------------------------------------------------==+++++++++++===+++++++++====-----:::::::::::::::::...:::-==++++=--:.........................................::---=============**##################@@%+++*+++*++++++*+*%@@%@@#++++*+++*++++***+++++++*++++**+++++++==++==========--------------------------=-------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------
$$@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*. .........................................................................................................................................................................::.....::.....:.....:...:-::::::-------=======++===--===+++=====+=+++++++++***********************************@$@@$@#############%@@%#######%@@%##%%%%%%@@+:....................:=:.................------------------------=+=--------------------------------------------=====------=========================--:::::::::::::::------------:::::..............::--=++++++=-::.............................................:----============+*####################@@%+++*++++**+*++**+**%@@@@#**+*++++++++*+**+++++*++*+***++++++++++==========--=--=----=--------------=--------:-:::::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::----------------------------
$$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=. ................................................................................................................................................................:.....................:.......:::::::..::--======++++=====--++=++++++=++===++++++***************#********#*#********#@$$@%###############@@@#######@$@##%#%%%%%%@@#-.....................::................------------------------=****++=--------------------------------=================++++*****+++++++===---:::..................................:::::::::--==++++++==-::..................................................:---=============+*#####################@@#+*+*++*++**********+#%@@@#***+++++++**++*++++******+**++++++++++============--------------::----=-=--===------::--::-::::::::::::::::::::::::::::::--::::::::::::::::::::::::::::::::::::::::-::-----------------------------
$$$$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@$@@@@$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%- ................................................................................................................................................................................:....:::::::::-::::...::--====++=+++======++++++++=+==++++*******************************#*****####%$$%#################%@@%######@$@##%#####%%%@@%=.......................................-------------------------=++*###*++==---------------------==========++++++****+++==-----:::::......................................:::--================--::........................................................:----===========+*######################%@@#+*+*****+**********++*#%@@#+*++++++***+++++*+++*++++***+++++++===========-=====--====-----:-------=======--------------::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::::::-:::::--:----------------------------
$$$$$$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: .............................................................................................................................................................:::.....................:::::::::::::::-----===+=========+++++*+**+*+++=++++***+******************#******#***##*###%$$%###################@$@######@$@%#####%%###%%@@*:.....................................-----------------------------=+**#%%%##**+++=======++++++++++======+========----:...........................................::---===+====---:::::..................................................................:---============+#%######################%@@#+*************+****++++*#@@#+*++**++++++++++++++++*+*+++++++====================--=---------------===-------------=-------::::::::::-:::::::::-:--:::::::::::::::::::::::::::::::::::::::::-:-:-:----------------------------
$$$$$$$$$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+. ..........................................................................................................................................................::......:................::::......::::.::---====+=======++++++++*******++++++***************************##*#**###%%@@@####################%@$%#####@$%###%#%%#%####%%@#=.....................................--------------------------------==+*##%%##########################**+===----:::..................................::::---=====---:::.............................................................................::--============+*#%########%%#############%@@****##*+*******+****++++++*%%*+*+++++++++++++++++++++++++++++=+==================--------------------==---------------------::::::-:::::::--:--::--::::::::::::::::::::::::::::::::::::::::::::-------------------------------
$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=. .................................................................................................................................................................................:--:.::.....:::-:------========+++++++++*******++***************************###*########%%#%@%############%#%%%%###%$@%###%$$%###%%%#%%%%%###%@%+:...................................:------------------------------------==++***+++++++************++=+++*************++++====--------------=--=------====--:::....................................................................................::--============*#%#########%%%#############%$@#**#**************#*+++**++*##**++++++++++++++++++*++*+=+++++++==================-=-----------------==------------------==---::::--:::::::--::::::-::-:::::::::::::::::::::::::::::::::::::-::--------------------------------
$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%- .........................................................................................................................................................:..................:::..:::.::.....:::::----==========+++++***+******++******+**********************#############%%%#######%%%###%%%%%%#%%#@$@###%$$%#%#%%####%@@%###%@@#-...................................:---------------------------------------===+++===-----========--:........::::----==++++++*+*++++++++====---::::..............................................................................................:--===========+*#%###########%@%#############%$@##*#****************++*+**++*****++++++++++=+++++++++*++++++++++++======++=======-==---------------===--------=--=-=-------::----:-:::::-::--:::::-:::::::::::::::::::::::::::::::::::::::::::::------------------------------
$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*: ............................................................................................................................................................................:.:::::.:..::..:.:::--==-=-======+++++++**************************************#############%%%#####%%%%%#%%%%%%%###%%#%@$@##%$$%##%%%#####%@@####%@@%+:..................................:-------------------------------------------========-------------..........................................................................................................................::..............:--========-=+################%@%#############%$@#*****************+++**++*+*+++++++++++++++++=++++++++++++++===+++++++==+++======----------------==----------------==---------------::::::::::--:::::::::::::::::::::::::::::::::::::::::::::::-------------------------------
$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ....................................................................................................................................................................:::.....::::::...:.::::-::::---========++*++++*+++******************************#################%%######%%%%%%%%%%%%%%%%%%%#%$$%#%$$%%%%%%#%####@@%####%%@@#=..................................------------------------------------------------====-------------:.......................................................................................................................:=-.............:--=======-=+#%%###############@@%#############@$@****#**###*********++++***+*++++++++++++++++++++++++***++++++==+++++++==+++==+======----------------===-------===--=------=--------:::::::::::::::::::::-:::::::::::::::::::::::::::::::::::::-:------------------------------
$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=. ................................................................................................................................................................:::..:..:::::::..:::::--::::---=======-==+++=+*++++++***********************#***###################%##%#%##%%%%%%%%%%%%%%%%%%#%#@$@%@$$%%%#%##%####%@@######%@@%*-.................................-----------------------------------------------------------------......................................................................................................................:=+:...........::-========-+%@@@%##############%@@%######%%#####@$%#******#*##******++++***++++*++++++++++++++=+++++++++++++++++++==+=+++====++=======-==-====-------=====----------=--------------:--:-::-::::::::::::::-:::::::::::::::::::::::::::::::::::::::::------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#- .................................................................................................................................................:............:...:.:::::::.:.::::::::--:--===--==+===++===++++++*++***********************#############################%%%%%%%%%%%%%%%%%%%%#%%%@$@@$$%#%##%##%%%##@@%###%%#%%@@#+-................................:----------------------------------------------------------------.....................................................................................................................-+-..........::-==========*@@%@@%##############%@@######%@%#####@$%##***#######**********++++++++++++++++++++++++++++++++++++++++++++++++++====+============-==-======---=---------------------------:---:---::::::::::::-:::::::::::::::::::::::::::::::::::::::::------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*. ..................................................................................................................................................::......:::....:::-::--::::-::::----::-======+++++=========++++++*****+************#*##**#####################%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$$$$%%%%%%#%#%%##@$@####%%%%%@@%#+:...............................:----------------------------------------------------------------...................................................................................................................:-:.........::--=========+#@%%@@%###############@@@######%@@%####@$%###*#*#*##*******+****++*****+++++++++++++++++++++++++++++***+++*++++++++++++++=============---=====-=====--------------------:-:::--:::--:-::::::::::::::::::::-::::::::::::::::::::::::::---:-:-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=..................................................................................................................................................::....:.:.:::..::::::::::::-::-::--::-====++++++=-===---===+++++++*****+************###**#**#################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$$$%%%%%%%%%%#%#%$@######%%%%@@@%*=:...............................----------------------------------------------------------------............................................................................................................................:::-==========*%@%#%@@################@@%######%$$%####$$%########***##***++***#*+*******+++**++*++++++++*+++++++*+++++****++**+++++++++++============-=====+======------::-:-----------::-----::---:::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: ...................................................................................................................................................:........:.:.:::::::::::::-----::=======++=======--=====++++++****+*******#####*######*############%####%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$%%%%%%%%%%%%#%$@#########%%@@@%%*-...............................:------------------------------------------------------------------::.................................................................:::::..............................................::::-=========+*#@#*%@@################%$$%#####%@$$%###%$$%#######*#######*#********#******+*+**++++++++*++++++++++*****+*+++**+++++++++==++=+++=======-============-------:-::----:-----::--:--:----::::::::::::::::::::::::::::::::::::::::::::::::-:::--------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=...............................................................................................................................................:..::........:....::::::::::---=-:::--=-==++++============+++***+************##*#####################%##%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$$@%%%%%%%%%%%#%$@###########%%@@@@%+:..............................:--------------------------------------------------------------====-:::::................................................:::::-----------::..........................................:::::--========+*##***#@@%################@$@%#####@$@@@%##%$$%#################**#******#******+++*+*+++++++++++++++*+**+****+**+++*++++*+++====++++++==-===============-----------=---------:-------:-::::-:::::::::::::::::::::::::::::::::::::::::::::--:---:----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................................................................................................::::....:.........::-:::::::::-=-:::-----======+===+======++=+++*************#**#########################%#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$@%%%%%%%%%%%#%$@##############%@@@@#=:.............................:------------------------------------------------------------------=====-----------::::::::........................::---==============---:........................................::::::--========+*##*==#%@@################%@$@%####@$@%@@%##%$$%#%%#################*##***#*****++****++++++++++++++++*****+*******++*+*+++**+++====++++================--=----------------=------:------::::-:-::::::::::::-:::::::::::::::::::::::::::::::--::------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*:...........................................................................................................................................:..:...............::::::::::::::---:--=-==++=-==+========+=++++++*++++******#**####################%#%%%%#%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%#%$@######%%########%%@@@#=.............................-=----------------------------------------------------------------------=--==============----::::::::::::::::-----=======----=======-:..........................................::::::--========+*#*+===#@@%################@$@@@###%$$%#%@@%#%$@%%###%##################********+******++++++++++++++++*****+****+**++*+*+****++++++==++=++===============-=---------=--------:-------------:----::::::::::::::::::::-::-:::::::::::::::::-::---:------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-..........................................................................................................................................::.:...............:::::::::::-:----=--=--==++=-=+========+++++++++*++****#*#*#***###########*########%##%%#%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%#@$@######@@%##########%%@@#=:...........................:----------------------------------------------------------------------------------------======-=================------=====+++=-:............................................:::::---========+***+====%@@################%$$@@@%#%@$%###%@@#@$@##########%%#%############**#*****#*+***+*++++++++++*++**********+*+++++*+****+*++++++++==++++=====+++=-===-=----------=-----:----=-=----:-::--::::-::::::::::::::::::::::::::::::::::::::::----:------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+: ........................................................................................................................................:...............:::::::::::::::-----:---==+===+++++=====++=+++++++*+***********#######*####*#################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$@#####@@@@#############%@@#+-...........................:---------------------------------------------------------=++====-----------======---=---------====------------====+++++++=-:.............................................::::::---=======+****======#@%################@$@%@@%#@$@%####%@%@$@%#%##%%#####################*****##******+*++++*+**++**********++++++++*********++++++=++++++=====++=========--=-=-----=------------------::-::::::::::::::::-:::::::--::::::::::::::::::::::----------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+. .......................................................................................................................................................:.:.:::::::::::---::---===-===++=+=+===++=+++++*+**++***********############*############%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$%####@$@@@%###############%##+=:..........................:--=----------------------------------------------------=+*******+++====-----------------------------====+=+*****++==--:...............................................:::::-----======+***+======+%@%###############%$$%%@@%%$$%######%@@$%######%%#####%#####%%#########********************+++***+**+***++*++++++++++*+**++++++++++++===+==+===========----=-==-------------:::::-::::-:::::::::::::::::::::::--:::::::::::::::::::::::---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-........................................................................................................................................................:...:.::::::-----::::-=---=====+=++++==+++++++***++**+**+***#####################%#####%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$%##%@$@%%@@%################*+**+-..........................:--=-----------------------------------------------------===+++***####****+++++============+++++*******+==--:::::..................................................:::::----=======++***========*%#################@$@##%@@@$@%#%#####%$$%######%%######%%%###############**##******+**************************+++++++++++++++++++++++=====+==============--==-==--==---------:::--::::-:::::::::::::::::::::::-:::::::::::::::::::::::-:--------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*: ...........................................................................................................................................................::::::--:-:::::--====-=+++++++++++****+**************##################%#%%%%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$@##%@$@%%%%@@#################*=-=++=::.........................:-------------------------------------------------------------====+++***################**+++==--::............................................................:::----=========++**+=========#%################%$$%##%%@$$%%#######%@@@%#####%%######%%%%##%###########*#*##*********************+***+******+++++*+++++++++++++++++=======++===++=============-===--===-----::--::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=. ..........................................................................................................................................................:::-::::::::--======-==+++++++**++++***************#**#################%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$@#%$$@%%%%%@@%##################+-:-+*+=-:::......................:---------------------------------------------------=-----=------------============--:.....................................................................::---============++**===========%%%###############@$@###%%@$@%%#######%@@%%%#####%%%%###%%%%##%#############*##*****##***************+*+*******+*++++++++=+++++++++++++++=+=+++==+=+++++==++===========--=-------:::-:::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=...........................................................................................................................................................:::.::.:::------==-===++++++++++++**+++******++******################%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@$$%%$$@%%%%%%%@@%###################+==+****=--::....................:-------------------------------------------------------------=--==------------::......................................................................:::---=============+**+===========+%%###############%$$%##%%@@@%#%%##%###%@%%%%%%#%%#%%%%%%%%%%%###############*###*########***********++******+**+*+*+*+++++++++++++++++++++===+======++++======-====-=====--::---:::::::::::::::::::::::::::::::::::::::::::::::::::-::-----------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=.............................................................................................................................................................:::::::-----==--=++====+++++************************########%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%@$@@$$@%%%%%%%%@@@#####################**#*==***+=-:...................:-----------------------------------------------------------------=------=====......................................................................::---==============+**+=============*%################@$@%%%%%@@%%%%%%####%%%%%###%%#####%%%%%%%#####################*###**#***********#******+*++**+++*++++++++=+++++++++++=++===++===++=========+=+=======-=-----:---::::::::::::::::::-:::::::::::-:::::::::::::::::-::--:-:-------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=:.......................................................................................................................................................::::::::::-=----==--=======+++++*******************##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%@$@@$$@%%%%%%%%%%@@%############%%%########%#-:-=**+=--:.................-------------------------------------------------------------------=------=--....................................................................:---================***+==============*%*##############%$$%%%%%%%%%%%%%####%%%%%######%%%%@@@@%#%%###%###%################**##****##******************++++*++++++++=++*+*+++=+++++===++==+======+====++++=========--::-------:::::::::-:::::::::::--::--:-:::::::::-::::::::------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:.....................................................................................................................................................::::::-:::--====+++==--=+++=+++******************#**############%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%@$@$$@%%%%%%@%%%%@@@%##########%@@%#########%#-.::=+***=-::..............----------------------------------------------------------------=-----=-----=.................................................................::---================+**+======*+========#%*#####%%#######@$@%%%%%%%%%%%%####%%%%%%%%%%%@@@@@@@@$%#%%%%%%%###%###################*####*****************++*++++++++++++++++++++*++==+++++++++=====+=====++++==++=+=-===---------::::::::::-:::::::::::::::::-::::::::::-::::::::------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:..................................................................................................................................................:-=--:::::-----==-=====+=++++*++*************#********############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@$$@@@@%%@@@$$@%%%%%%%@%%%%%@$@##########%@@##########%@#==---=+*##+=-::.........:--------------------------------------------------------------------------==--..............................................................:::----===============+***+======**+========#@%###%%@@%#####%$$%%%%%%%%%%%%%%@@@@$$$$$$$$$$$$$@@@@@$%%%%%%#%%%%##########*##########*####****#*#*********+++*+++++++++++++++*+++**++++++++++++++++=++=++=======+++===-====-----:::-:-:::::::::::::::::::::::----:::::::::::::::-:-------:-----------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+. .............................................................................................................................................::-:-----:::------==--===+=+++++++******##****###****#*####%######%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@$$$$$@@@@$$@%%%%%%%%@%%%%%%@$%#########@$@###########%#*=------=+##*+=-:::::::--------------------------------------------------=-------------------------=---............................................................:::----===============+*#*+=======+#*========+%@%###%@$@%#####@$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$@#%%%%%%%%###%%######**##############****#***##**#******++++++++++++++*+***+**++++++++++==++++=+++====+++=+=+++======-------------::::::::::-:::::::::::::::::::::::--::::-:--------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=............................................................................................................................................::::---=-----::-=-======+++++==++******#**###*##**###########%###%%#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%@$@@@@$$$$$$$$$@%%%%%%%%%%%%@%%%@@%########@$@############%#+--------==*##*=-------=--------------------------------------------------------------------==---==---..........................................................:::-----==============+*#*+=========*#+========+%@####%$$@%####@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%%%%##%%%%#######*################*****#####********++**+*+++++++******+***++++++++++++++++====++++++++++++====--==---==---------:-:::::::::::::::::::::::::::::::::--::--:----------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-...............................................................................................................................:.......::::::::-----=----===+==++++++++++++****#*#*##***##*###########%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%@@@%%%%%%%%%%%@$@@$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$@%######%$$@%###########%%#=----------=+***+=-------------------------------------------------------=---------------=-==-==-===-.......................................................::::----===============+*#*+==========*#+=========+%@####%$$$%#%#%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%%%%%%%%#%%%####################*##*#**#*####**###******+************************+*+++*+++++++=++++++++*+++=====--====------==--------::-::::::::::::::::::::::::::::::-----:::--------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*: ............................................................................................................................:......:::-:----=----==---===+++++++++++++++***###*###############%#%%%%%%%#%%###%#%#%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$@@$@######%$@@@%###########%%*-------------=++**+=-----------------------------------------------------------------=------------=-.....................................................:::----================+****+==========*#*==========+%@####%$$$@%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@%%%%%%#%#########%%######################***#*******************************+**+++++++++++*++*++++++++++=========-=-=----==--:--:::::::::::::::::::::::::::::::----:-----------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+. ...............................................................................................................................:::::::::--===--====-===++++=++++=+++*********#################%%%%%%%%%%%####%#%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@$$$$@@@%#####@$@%@@###########%%#=---------------=+****=--------------------------------------------------------------------====--==-.............:::...................................::-----================++***+===========+##===========+%@####@$$$$%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$@%%%%%%%%%%%##%##%%%%%#############%#######*********##*******#***##*************+++++++++*++++++++++++++==+====----==-:----=-----::-::::::::::::-::::::::-:::::::----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%- .............................................................................................................................:::::::::-=----:-+=====--=+=+++=+++++++**++*******##############%%%%%%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%####@$@%@@%##########=#%*-----------------==+**#*+=-------------------------------------------------------------=-===-=-=---............::=+=:...............................::----============-==++++***+============+##+===========+%@####@$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%###%######***#***#******#****##***#***************+++++++++*+++++++++=++++++====-=--====----=-::::::--:::::::::::-::::::::::::--:::----:----------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*. .............................................................................................................................::::::-:--=---==+===-===+==+=+++*++*+**#**#*#***#########*##%%#%%%%%#%%##%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@###%$$$%%@@%#########-+%#=-------------------==+****+==------------------------------------------------------=----=--==-----..........:::-=**=:.........................::::----===============+++++***+=============+#%+============+%@####$$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########**#**#******#***#******#***#*#*********++***++*+++*++*+++++++++++===-===+=====----:::::::::::::::::::-::::::::::::::-::----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%- .........................................................................................................................:...:::::::----:==----==--===-====+===+++***########*##########%#%%%###%#%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%##%$$$@%%@@%#######*-=#%+---------------------====+*##*+=--------------------------------------------=----------=---=---==:.............::::::....................::::-----==============-==+**++***+===============#%*=============+%@###%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@$@@@@@@@@%%%%%%%%%%%%%##%%#%%########******#*##*###**********#******+**++++++++++*++***++++=++++++=+=+====--------::::::::::-:::::::-::::::::::::--:-:----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*: .........................................................................................................................:..::::-:-:-=-----=-==---=--=+====+=+++**##############%%%#%###%%%%#%%##%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%@@@$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@##%$$$$$%%@@%######===*%*=---------------------======+*##**+==----=---------------------------------=-==-----=--=----===-=....................................::::-----===================+**++***+================#%*==============+#@%#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%%%%%%%%%%%%%####%%%#%%####################*#####***##****++**+++++++++++***+**+*++*++++*++===-==-==--:::::::::::::-:::::::::-::::::::::::::-----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=..........................................................................................................................::::::::::=------====-=---:----=++++*++*######**##########%%%%%%%%%%%%%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%@@@@@@$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%@%#%$$$$$$@@@@%#####*--+##=------------------------===--==**###*+=------------------------------=-------==-=-=--===--======:...............................:::::-----=-===============-==+**++***+=================#%*================#@%#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%%%%%%%%%%%%%%%%%%#%%%%%%%%#####%############*######*#*##****+++++++*++*++++******+++**+++=+*+++=+==-===----:::::::--:---::----:---::::::::::::--:--------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*. ...........................................................................................................................:-:-::=-------------===----==++=++****##*##*#########%##%%%#%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%@@@%%@@@$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#%@%%@$$$$$$@@$@%#####=-=##+=-=---------------=------=====--==+*#%#*+=-----=---------------------=-----=-=-===---=-========-=............................::::------==================-=+***++***+==================#%*=================#@%#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%##################*###*####*****+**++++++++*+++******+*++**+++++=+++++++====-------:--------:----:-::::::::::::::---:----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@- ......................................................................................................................:::.::.-:::---:::-------===-====+++=++****############%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#%%%@$$$$$$$$@$@%#####+-+#*=--------------==--===-------==-----=+*#%%#*==---------------------------------=--====------=-----.......................::::-------=====================+***++***+===================*%*==================*@%#%$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################*##********+*+++***++********+***++*++*++++++++=====--==--:----------=---::--::--::::::::--:---:------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.......................................................................................................................:-.::::--:::::-----+==-==-======++++*****#######%%##%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%@%@%%%%@%@%%%@@%@@@@@@@@@@@@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%@$$$$$$$$$$$@%#####*+*#=---=--------=-----=+**+=--------------==+#%%#*+=----------------------------------------------=-=...................::::--------===================-=+****+****=====================*#*===================+@@#%$$%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############%%################*#********++++**+*********+**********+**++++=======--===---::::--==--:-------::-::------:----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#- .............................................................................................................:....::::..:::-:::::::----====--=++==++++*++***##**############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%%@@@%%%%@%%@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%@$$$$$$$$$$$$$$%######+*+----=-----------=--=+*##*=----=-----------=+*#%##+==--------------------------------------=--====:.............::----------=====================-==+*#*++***+======================+#*=========+==========+@@%@$$@#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%#%%#%%%%#%#%###%################*******************************++*****+++++++=++======--::::::-:--::------:::-:----:-:----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+.............................................................................................................:....:::::::::-:::::::--===--==++++==++*+**++**###**####%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%@%@@@@@@@@@@@$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$@%####**+===--=------=--====---=*#%*+=---=-=-=---=----==+##%#*+=-----=-----------------------------=-=-====.........::-------=-=======================--=+*#**++***+=======================+**=========*+===========@$%@$$@+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%#%%%%%#%%%%%#%#################***###***********************#********+++++++=+=+====-==--:::::--:--::-----:-:--:---::-----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: ................................................................................................:.............:::.:::-:--:-:::----=---===++++=++=+********###**###%%%%%##%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@%@@@@@%@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#####*=----=====--=-----------=+#%#+=-------=----==----=+*####+==-----=-----------------------------====:.:::-----=========-=====-==============--=+*##*+++**+==-======================+**======--=*#+=+=========#$%$$$$+@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%%%%%@%%%%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%##%#%####%##############*##*#*************#*******##*#**++**++++=========-------:::::-:::::-------::------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=....................................................................................................:........:..:::::---:::::-----===-=--=+==+++=+****###########%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@%%%@@%@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@###%%#++=------=====+++++====--=+#%#+----=-=--------=----==+*###*+==------------------------------====---=======-===========================--==*##*+=++**+===========================++=--===++*%#++===========+$@$$$$**$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%%%@%@@%@@@@@%%%%@@%%%%%%%%%%%%%%%#%%%##%##%#%%%%##############**#****#****##*#*#**#**+*#****++++****=+++==++==--=---:----:::-----::---:-:::-:---------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@$$$@$@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...............................................................................................................:::::--::-:----===---=--======-===+++*#*#*#*##%##%%#%%#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@@%@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%#%%#*+=---=##**********+++*%%*=------=====-=--===----==+*##**+==----===-----=------------==========---============================-==+*##*+=+**+==-========================-=++=+++****#%*===============$@@$$$++$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%%@%@%%@@@@@%@@%%@%%%%%%%%%%%%%%#%#%####%%#%%%%%%%%%####%#########***********###*#**##**#************++++=+=+=---=----=-------==-----------------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%: ...........................................................................................:............:..:.::::::::----=====----:--==-====+=+*+****#######%#%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%@@@@@@@@@@@@%@@%@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$@%%*+#%#*++++**@@##**#%@@#*+==--------=========----=++*##**+===----==--===---=-----=---====-============================---=+*#%#*+++**+==-===================----===+*###*##*==**=================$$@$$$#*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@%%%%%@%%%%@@@@@%%@@@@%%%%%%#%%%%%##%%%%%%%%%%%%%%%##%%#########**************##**#********+*******++++++++=====-------------=====-------:-:---------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@%%%@@@@@@@@@@@@$@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@=....................................................................................................:..:::.:::...::--------=====--===-==+-=++++++++##**#%##*%%#%%#%%%%%%%%%%%%%%%%%%%%%%%%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%@$@@@$$$$$$$$$$$$$$$$$$$$$@%#++=*%%%###**++==-------------------=++***+++===---===-=---=---=========-=====================-----==+#%%#*++++++==-==================--===+**###**+**%@@@@@@%#=========++***##$$@@$$==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@%%%%%%%%%@%@@@@%@@@%%%%%%%%%%%%#%%%#%%%%%%%%%%%%###%###########*##*******##**###*+*#***+*************++=++=------==--==-=+==-==------:------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@%%%%@@@@@@@@@@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#: ................................................................................................::..:.:-::::..::-=--===-=-:-=--=-===++====+*****#***#**##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@%@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%@$@@@$$$$$$$$$$$$$$$$$$$$$$$$@%%#*##**####%%%##**++++++=+++=++++++++*%%%**++==----===-==============================----===++##%%#*+==++++===============-=--====**##***++=++#%@$$$$$$$$$$%++*********++==$$@*$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@%@@@@@@@@@@%%%@@%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%#############**#**##**##*#*#********#****#**#***++*+++++====---=------==-===--------------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@%%@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+:... .......................................................................................:...::.....:...:..:::----=--=--==------=+=-==+===*++***#**#######%%%%%%%%%@%%%@@@%@@%@%%%%%@%@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$@@@@%##**===-----===================---======+++**##%#*+=-==++==---------------===++**###*++++++#%%$$$$$$$$$$$$$$$$%+====::::----=$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%#######**##***#**##*#****#***+*#**#***#*******+*+++===------=--========-------------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%####*-....................................................................................:...::..::::....:::-:-=+--========-:=--=-:---=++=+++*###*###%%%#%%%%%%%%%%@@%@@@@%%@%@@%%%@%%@%%%@@@@@@@@@@@@@@@@$@@$$$$$$$$$@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#*++====----================++++++++**###***##%@@@%%%%#*#%%%%%%@@%%@@@@@@@@@@@%%%@$$$$$$$$$$$$$$$$$$$$$$$%*+++=-------+%@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@%%@@@@@@@@@@@@@@@@@%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%########****##*****####*#**#*******#***#********++++*+=---------========+-------------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$@$$$$@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%+:......................................................................................:...::....:.:::::----====-=-====--+=-:--==-===+++***+####%%%##%%%%%%%%@@@@@@@@@@@@%@%@@%@%%@@@@@@@@@@@@@@@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%#**++====------===========+++*#%@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%##**###%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%#####**###****#**#*#***####****##*********#****+**+====------========+===-=--------=-----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@$$$$$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@#-.............................................................................................::...::-::::--=-=---::-----=----:==++++++****#%%#%%###%%%%%%%%%%%%%@@@@@@@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@#*+++++@%%%%%%%%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@%@@@@@@@@@@@@@@@%@%@%@@@@@%@%%%%%%%@%%%%%@@%%%%%%%%%#%%%%########**#*#*##**#***###*#***********+************+==+====--==-=-===+===-----=----==-----------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$@@@@@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%+:.................................................................................:.:......::..:....:::::-::--=----===:--=-:-=++===++****########%%%%%%%%%%%%%%%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%**#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@@@%%%%@%@%@%%%%%%%%%%%%%%%#####**####*****#**####**************+++++**++++==+++==---======++====--=--=---=-------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@#=...........................................................................................:....:::.:::..:::---=+==--=+-==+=+***+=+*#######%%##%%#%%%%%%%%%%%%%@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%+*@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@%%%@@@%%%%%%%%%%%%%%%%%##%###%######*#######*###****+*********++++**+++====+======-====++====--=-----==-------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%*:.........................................................................................:.....:..-::::::=-=+-====+=++==+=+#**#++####%#%#%%%%##%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@%@@@@@@%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%##%##%%#%######%#####*******+*+*+***++++*+++++++=====+=+==++=====-==------==-------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@$@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@#=:........................................................................................:...:...-:-==:.:------=---==+=====*++#####**#%#%%##%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@%%@%%@%%%%%%%%%%%%%%%#%########%%#%########***##***+****+++++**+*+++++==++==++=+=====--==-=---=----------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%*-.......................................................................................::..:::::::--:::-:-=:-=---=--=-==+#**##%%#%#%%#%###%%%%%@%%%%%%%%%%@@%@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%%%%%%%%#######%##%%%%#%#####*#*###**###****++++**+*+++==+++=+====++===--=-------=----------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@@@@@@@$@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@#=:.................................................................................:::..:....::-::::::::::::--:----::--++**+*####%#%%###%##%%@%@%%%%%@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%%%%%%%%%%#%%####%#%%#%%%%#%##%####**#######*****+++**+**++=+++=++==========-------=-----=-=----------------------------------------
@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$@@@@$@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@%*-......................................................................................-:..::=-:::-:::-::--:==---===++++***####%%%##%###%%%%%%@@@%%%%@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%#%#%%%###%#%%#%%%%###########*###*******+****++===+=======++====----=---==----==----------------------------------------
$$$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@#=:..............................................................................:.....:::-=--++==-::.-:---=+---:=+=+-+**#####%%%%###%####%%%@@%@@%%@%@%%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%#%%%%#%%%%%%%%%%%%#####***#####*##*****+==+++=+========++==++=+==+-==-==--=-=-=====-----------==------------------------
%%@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%+:.............................................................................::..::.-+=:.:-=+=-::::-:--===-=-=+++*****#%%%%%@%%%%%####%%%%%%%@@@@@@%%%@%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####*#####**####**+=++++=========+=++*+++++=======---=------------------===------------------------
++++***###%%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*-..........................................................:.....:.............:--:--*=:.:-=*=-:-:-===+===-==+=+=*+*##%%%%%@@@%%%%%%%%%#%#%%%%@%%%@%%%%@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%@%%%%%%%%%%%%%%%%%%%%%%%%%#####*******#****+++=+++=========+++*++**+===-=======------------------===------------------------
+++++++++++++++***###%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#=:.......................................................--.::::-:..........:.---:-:+==-=*=+-=-=:---=++===-:=*****###%%%%%@@@%@@@%%%%%#%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%@%%@@%%%%%%%%##**##*****++++++=++=+=+=++=++++==++++++++==+==+==-------------=------==---=---=---------------
++++++++++++++++++++++++++***##%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%=:..........................:......................:....:::::::..:.......:.:..:-=--+==++=++--=-+-:--++=++==**+###*##%%%%@@@%%%@%%%%%%%%%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@%%%%%%%%@%%@@@%%%%%%%%%####*#****++++==+==+++++++==+++===++==+++===+==-=----=----------=-----=------=----------------
+++++++++++++++++++++++++++++++=++++***##%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+:..................:...........................::::.:..:-::::.:::..:.:...:.:-==-++-==-=:--:=-=--+=--+=+=**##**##%%%%%@@%%%%@%%%%%%%%#%##%##%%%%%%#%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%%%%%%@@@%@@%%%%%%%%#####*#*+*++**++======+===++++=+++*+=++===+==========--------=------==--=-----=----=-------------
+++++++++++++++++++++++++++++++++++++=====++++**##%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*:......................................:....:......::.:-::::....:::.:.:::.:-=+---.:==+-:=+=++++=--+++*+**###%%##%%#%%%@@%%%%%%%##%%#%%%%%%%@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%%%%%%#####*##*#**+***++++=+====++++==+++=+++++=====-==+====-------==---=-----------=----=---=-----=---
+++++++++++++++++++++++++++++++++++++++++++++=======+++**#%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$$@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%-.........:.....................:...............:-:-:---::---:::--::.-::-::-::::::===*+==-===++=+==#=+##%##%###%%%%%%@@@%@%%%%%###%%%%%%%%@@@%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%%%%@@@%%%%%%########**#*###*+++++=-=+*+====+*+*+==+++==+=====-===--=---=----------------=------===----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++======+++**#%%%@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*:.......:......................................:=-=--::--:::-:::-::.:..-:.--:::=--=+**+=-===++*++*##%%%%#%####%%@@%@%@%%%%%%%%#%%%%%%#%%%@%%%%%#%%%@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%*####***##*##*+*+=====+===+=+++*++++=+=+=+==------------------=-----------==---=====---==-=---
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======+++**###%%%%%%%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=.....::....................:.....:...........:=----:::::----:--::--:--:::=-=-+=++++++=====+**=*%%#%%%#%%%@@%%%%@@%%%%%%%###%#%%#%%#%%%%@%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%%%%%%#####%*##*##**#*+++*+++++*+++*+*+=+++++===++++*==-=-----=-==----=--=-=-----=-=---========-====-==
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++========+++**###########%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-...::::::..::................:.:......:..:..--==--:--:--=+=:---=--==--:--=:-+++#*==++-==***##%#%%%%#%@@@@@%@%@@@@%@@%%#%%%%@@%@@%%%%%%%#%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%#%%#%%#####*++++*++++=++++*+++=++++++==+++++======+====---====----==-=---===--======+=========
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====+==========++**######*****##%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$@$@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+:...::...:---:.:::..................:..:::.:.:-----:-=++=-==:-=----=-::-=-++=++**+++=*+####*#%%%%%##%%%%%%%%@@@@@@%%@%%%%%%%#%%%%%%%%##%%%%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%######**++++++*+++++++++**+==++==+++++=++=+=+++=+========--===-==-==-=+===-==+++=++========
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+===================++**#####******#%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%=...::::.:-:::.:::::.:.....:...::..:::-.--:::-===:::-=---=----::-*=:::---=-=++++++*+**##*##%%%%###%%%%%@%%@@@@@@@%@%@@%%%%%%%%@%%#%%%%@@@@@@%@%@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%%%#%%###%##*****#**#*++*+++*++***+==--=+==+===++==++==+===+==========--+==========+++=+=========
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=========================++**#####***##%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@$$$$$$$@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#-..:=-:::.:-:..:--:-:-:.::::......:------::-==+=-::=-:---==-=::+=--=---==+*#*+**+**##*#%##*#*##%%@@@%@%@@%@@@@@%%%%%%%#%@%%@%%%#%%%%%%@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%#%%%%%%#******#**###**+****+****++=-=+++++++++*++=+-==++*===+====++===-=-================+==-=
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===============================++**######%%%@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@+-:--===--=--:=-=:-:::::.......:::----=====+-=---::.:-=-:-----==-=++=-====*+=+#**##*#*+###**%##%%%%%%@@%@@@@@@@@@%%%%%@%@@@@%%%%%%%%%%@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%###*#**#**##*++**#*********+==++*+++++*+**=-===+=*++++++==++====-=--=--=+===++==+=+==-=
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======================================+++**##%%@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+=-++-=:--=-===:=--::........::::+=----=-=---::::.:=-:--=++==*+#*++=+===+*==++*###**+**#+##%%%%%%%%@@@@@@@@@@%%@@%%@%%@%@@%%@@%%%@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%%%%%%%%%##%%#*##*+**************+**+=+=++=+*+++++++====+*+***++==========+==--===++=====+++====
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==========================================++**#%%@@$$$$@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*+=+=++=+--==--:--::::::.::::--==-:==-::-----::.:::-==+=++++=+++++=-=++++=*****##%*+*###*%%%@%%%@@@@@@@@@@@%%%@%%%%#%%%@@%%@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%%%#%%#%%#####**+***###**#####**+*+==+++==+++++==+===+++*+*++++++++==+===++=--==++++=+=========
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+=+============================================++*#%@@$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#++++++==----::.:::::::.::-===+==+=+==--::--:-::-:-=+===++*=++++++====***###*####%%%#%%%%##%%%%%@@@@@@@@%@@%%%%%%##%%%%@@%%%%%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%#####%%%#####+*****#*##***##*#***+=+++***++**+=++++******++****+++++++++====+++=+=+++++==+===
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+====================================================+**%%@$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*==+*+=--=-:::.:::.:..:::-==---*+=-=---:-----:=--==++**+*=-+++++**+===**###**#*#%#*#%#%##%%%%%%@@@@@@@@@@%%%%%%%%%#%%%@%@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%#%%%%#%###**++**#####**##*##***++***+*+++**+++**#***#+*##*#+**++++========+=-==++=====++++
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=========================================================+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#++**=====-::::-:::::=--=-=-=-=+-+==---=-:---=+-==++*+****+*++=+***+=***#**++**#***%###%#%%%#%%@@@%@@@%@@@@@%%%%%#%%%%%%##%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%#%#%%##**#******#######*###*#**#****+***++**********#***#*##**++*+=====+-==+==+++=+===++=+
**+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=============================================================+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%*+++++=---:-:.::--:=+=++=--==-+==--==--+=--===*****##*#*******#*******##***#%#%#%%%%#%%%%%%%@%@@@@%@@@@@%@%%%@%%@@@%%%@@%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%#*####**##*###############****#****+*******++******#*#******+++++++==++==+++++++++=++
****+**+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+===========================================================--==+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#****=++=-----:-=-===+*===+====+-----=+=====*+*#***#*#****##**###**###%##%##%%##%#%%%%@%%%%@@@@@%@@@@@@@@@%%%%%@%@@@@@@%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%*##**################****************+********##*##******+++++++++=++*++++++++++
******++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++===============================================================--==+*#%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%***+++--:-=-------==+++=++==++*++====++#*+*#*#########*#######**##%#%##%##%#%%%%%%%%@%%@@@@@@@%@@@@@@@@@%@%%@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@%%%%%#######%%%#####%##%##**##*****+***********####**######*****+++*=++++++++==++++++++
********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++=+++=============================================================---==++*#%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#***++==-=------=+==++++++++****+=+**##*#*#%#%###%%%%##%###%###%%%%%%%%%%%%%@%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%@@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%#%%#%%%%%#####%%%####****+****+******#****#####*######*#**+++**+++***++++++++++*+=
******++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====================================================================----==+*#%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%**+=+=-=-==---=+====+*****+**+***+*#*#%####%%%##%%%#*%%##%%##%%%%%%%#%%%%%%%%%%%%%@@@@@@@@@@@@@%%@@@@@@@%%%%@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%##%%%#%%%%%%%%%%%#%%%##**#****+*********+**+***###############***++*****+**++++++++++++=
********+***++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+========================================================================---==+**#%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*+-=+=--=--=++*=+=++**####*#+**#*#*##%#%%#%%%%#%%%%###%%##%%%%%%%%%%%%%%%@%%@%@%@%%@@@@@@@@@@@%@@@@@@@%%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%######***++*#**********+*+*#*#*###*#*####*###*******+*****++=++++++++++
***********++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=======================================================================----==+*##%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@$$@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#+**+=+====+*#===++**##*####*#**####%%%%%%%%%%%%%##%%####%%%%%%@%%%%%%%@@@%@%@%@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%%%%%%%#%%#####%%#********++**#*****#####*###*#*###*##*##***********+++++=+=++=+=
**********++****+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=============================================================================-----==+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@$$@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#**+==**+*****+*##***#***#*##**##%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%@@%@@@@%%@%@%%%%%%%@%@@@@@@@@@@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%%@@@@%@%%%%%#%%%%%%%#%#***#****++++******########**###***##*#*+**+**#****+++*++=+++=++
**************+**+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===+================================================================================----==+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@$@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#*#++#*****######***##**#*##*###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@%%@%%@%@@%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@%@%%%%%%%%@%#####*##*#*+*+=+******########*####***#***+******#****+++*+++++==++
*******************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+==================================================================================-----=+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%#****##**####**####%####%###%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%@@%%%@@@%%%%%@@%@@@@@@@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%##******++***#******#######***####*****++********++***++++===+
*******************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====+=============================================================================-==------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#+#*****######%#*##%%%%###%##%%%%%%##%%#%%%%%%%%%%#%%%%%%%%%%%%%@%%%%%%@%%%%%%%%@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@%%%%%%@%%%%%#####*###*****#****#######%#######**#**+******##**++++++**++===
********************+*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================================================---=====-----=+*#@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*++***+####%#%##%%%%%%#%%##%#%%##%#%%%%#%%%%%#%%%%%%%%%%%%%%%%%%%%%%@@@%%%@@%%%%@@@@%@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@@%%%@%@%%%#%######***###***###*#######%########**###**##*******+****++===
*******************+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================================================-==------=-=------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%*++++*####%####%%%#######%%#######%#%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%@@%%%%@@%%%@@%@@%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%###########**###########%########**#######******#*++**++==+
***********************+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+====================================================================================--==---=-------=+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@*+#*###%#%####%%%%%%%%%%%%%%#####%##%%%%%#%%%%%%%%%%%%%%%%%%%%%%@%%@%%%%%%%%%@@%@%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%###%%#########*########%#############*########***++++++++++
*************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================================================--==---------=-------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@#**###%%####%%%%%%%%%%%##%%%%#%%#%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%####%%##%%##%%##%############*####***###*****++*++*++=+
****************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===================================================================================-=---------------------==*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%######%%%##%%%%%%%##%##%####%###%%%%###%%%%#%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%#####%#%%%%%###%%%######%###*############*****+++**++++
*****************************+**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+==============================================================================--==-=----------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%%#%#####%%%%%%%%%%%##%%%%#%%%%%%%%%%%%%%##%%%%%%%%%%%%%@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%%%%%%%%%%%%%%%%%%##%%%#%%%#######*########***********+*+++++
*******************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+===================================================================================---=------------------------=*#%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@%%%###%%%#%%%%%%#%##%%%%%%%%%%%%#%%%%##%#%%%%%%%%%%%%%%%@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%#%%%%%%%%%%%%###%#%#######*#####*##**++*****#*++++==
*******************************++*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====================================================================================------=-----------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@%@@%%##%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%#%%%%%#%%%%%%#%###%%%%#####*###**##*********#*++*+==
**********************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===================================================================================-=--===---------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%#%##%%#%###%##############*##*****+*+*++=
**********************************+++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===+==+===============================================================================-----------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@$$@@@@@@@@@@@%%%@%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%#%%%#%##%%%%######*######*##**********+++
*************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+++=============================================================================-===-------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@%%%%%%%%%%%%%%%%%%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%##%%%%%%%%%#######*######**#*******#******
***************************************++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+++=+=================================================================================---=------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@%%%%%%%%%%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%#%########*#****#*#***#***++**+
********************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===================================================================================---=----------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$$@@$@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%#%%%%%%%#############*****#********+*+*
*******************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====================================================================================----===----------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%#################*#************++*
*********************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=================================================================================-----=---------------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%%%%%%%%%%%%%%%%%%#%%############**+****+****#*+**
*********************************************+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+==========================================================================================-=--------------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$@@@@@@$$$$$@$@$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@%@%%%%%%%%%%%%%%%%%%%%%%%%###########***+*********#****
***********************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====================================================================================-===-----------------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$@@@@@$$$@$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%#%#######**********+********
***********************************************+*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+++=+=============================================================================-==--==---------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$@@@@$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%%%%%%%%%%%%%%%%%%######*#*********+*******
**************************************************+*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======================================================================================------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@$$$$$$$$$$$$$$@@@$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@%@%@@@%%%%%%%%%%%%%%%%%%%%%%%%###########*++*+***#*****
**************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+++=====================================================================================-=-------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@$$$$$$$$$$$@@@$$$$$$$$$$$$$$@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@%@@@@%%%%%%%%%%%%%%%%%%%%%%%%#########**++++*********
*****************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======================================================================================-----------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@$$$$$$$$@@$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%########***************
********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================================-==----------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@$$$$$@$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%#############**#*#*##
**********************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================================------=---------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@$$@$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@%%%%%%%%%%%%%%%%%%%###%###########**#####
***********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================================================-===-=----------------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@%%%%%%%%%%%%%%%####################
************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=========================================================================================---=---------------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$$$$$$$@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@%%%%%%%%%###################
*************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=+++======================================================================================----------------------------------------------------------------------=+*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@%%%%%%%%%#
*************************************************************+++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++++++====================================================================================-------------------------------------------------------------------------=+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$$$$$$$$$$$$$$$$$$@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
****************************************************************+**+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====================================================================================-==-------------------------------------------------------------------------==*%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
*******************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====================================================================================------------------------------------------------------------------------------===+#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
********************************************************************+*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+====+================================================================================-==------------------------------------------------------------------=----===+++=+*#%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$@$@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
********************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======================================================================================-----==-----==-==----------------------------------------------=------==--++++++*=+#%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
*********************************************************************++**+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====================================================================================-===-===---=-========-==-----==-----------==---=-----------------------=+==++++**++###**#%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
*##*************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=========================================================================================-----===-=====---===-=-=-=--=----===-==---------------=----=---==++===+***##**#***##%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
##*************************************************************************+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==++=================================================================================================++==-=======-=-=----===--===---------=---------------==+*+++*##*##**#*###%####%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#**************************************************************************+*+**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+===========================================================================================--===+++++=+==++============--==-------==------------------+*+++++*##+##*#%#%%%%%%##**%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#####*************************************************************************++*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==++=======================================================================================-=========+++==++=++++=+========-=--=-==---=-------------==-=+++***+***#***#%%#%%%%#%%####%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#####****#***********************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+++==+=============================================================================-===========+==+++==+++=++===+=++=+====--===+=-=---------=-----=====++*+****###**%%%%%%%%%####%%#%##%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
########****************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==========================================================================================+++==++++===+++===+***==+++===-==========---=-=====---=+==+++**+**#*#**#######%%%%%%%##%%%%%%#%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
########***************************************************************************+**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==++=========================================================================+=+==============+++======+++++**+==++=++==+===+==------=--====---=++*++****#%###**#######%%#%%%#%%%%%%%%###%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
######*#****************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=======================================================================++================+++======+***++*++=++==+++====+======-===========+++=+*##**########*#%#####%##%#%%%%%%%%%#*#%##%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
###########*##**********************************************************************+**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+======================================================================++===========+=====++++*++++****++*++==++========+====-==+========++=++=++++*##########%%#%%#*#%%%%%%%%%@%%%%##%%##*+=*%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$$@@$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#############**************************************************************************++++*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++=+=============================================================================+=++==+=+++**+*****#*++++++==++=+=+====+====****+++====+++*+++++****#*##*#*##%%###*##%###%%%%%@@@%%%#%%#******%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@$@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
##############*************************************************************************++*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++===+=====================================+===+=========+========+=====+=====+==+===++++=++***+*****+**+**+**++++====*+=*++++*+=+===+==+****=**++#***#*##########%#%%%%%%%%%@%##%%%###**#+**#**#%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
###############***************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===+===================================++=+=+=======++======+===+++======++=====+++++=++*+++=+++==++*******+=+++***++++==+*====+**+==****++******#%****#%%####%%%%%%%@%@%%%%%%%%#%%%##**##***##%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
################**#***********************************************************************+**+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==========================================+==++++++=++=========+==++=====+==+===========+=+++=++******+*******+*#*******++**===+*+++==++++***+*###**##*####%%%####%#%%%@%@%%%%%%%%#%#%##########%###%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
################**#*****************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+===========+=========================++++++=++++++++========++=+=====+====+=+====+*+++++**++**++++*#*******++++**+*+**+*+++***+++**+#++*#*##%#*****#**###%%###%####%%%%@@%%%%%#######%##%%%%####%%#%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
######################***************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=======+=======+================+++=+==+++=++=+=++=======+++=+===+++===++==+=+++++++****+++*******++#****+++==++**+*+++*****++*+****########******##*#####%%%%#%%%%@@@@@@%%%#%%*####%%%%%%#%%%%%%%###%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
########################*************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======+========+=++============+=+=+++++=====+++=+======++=====+++=+=++++++++==+++++++*+++**#*+=+####***+++==+***++++++*******++**##%%@%#####****###########%%%@@%%%@@@%%%%%%%#%%%%%%%%%%%%%%%%%%###%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
##########################*************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++======+====+++=++=====+=+======++++==++++=++++*+++===+++++++===+===+=======+++++*******+**#**+*****##***++++=***#********++**#**###%%%#*#%%###%###%%%%%##%%%%@@%%@%@@@@@@@@@%%%%%%@%%%%%%%@%%%%#%%%%%%%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
############################***************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+==+==+++++++++++=++++++====++++++++++=+++++=++++=+++==++=+++=====+=======+*+++***##+#*****###***###****++***+*######***###**##%%%%%#%%%#%%%#%%%%%%%%%%@%%%@@@@@@@@@@@@@@%@@@@@@@@%%%@%@@@@@%%%%@%%%%%%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
############################**************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+==++++++++=+=+++++=++++===+=+++++=++++++++=+=+=+++=+=++++++===++=+++++=++++=**#**###%######%#####*#*++***####%####*#%##%##%%%%%@%%%#*####%%%%%#%%%%%%@%%%@@@@@@%@@@@@@@@%%@%%%%%@%%%%@%%@%%%%%%@%%@@%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#############################*************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++++===+++++++++++++++++++=====++++++++++*+++++====++=+====++====+=++++++==++******##*###*###%%########*****###%%###%%%%%%%#%%%%%%%%###%###%%%%%%%@%%%@@@@%@@@@@@@%@@@@@@@@@%@%@@@%%%%@@@@%%%%@@@@@@@%@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
###############################**************************************************************************+++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++++++++++++++=++++++++++=++=====++++++++++=++=+======++=++=+++++=++++++******##**#*###%*##%#%#####*#####%%%%%#%%%%%%%%#%%%%%%%%#####%%%#%%%%%%%@@%%%%@@@%@@@@@@@@@@@@@@%%@@@%%%%%@@@@%%%%%@@@@%%%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
################################****************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=+++++++++++++++++*++++=+++++++==++===++*++==+==++=++=====++=++++++++*++++**+*#*****#%#%%%%%%%##*#*#######%%%%%%%%%%%%%#%%%%%@%%%%%%#%%##%%%%%%@@@@@@%%@@%@@@@@@@@@@@@@@@@%%%%%%%@@@@@@@%%%%@@%@%%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
###################################*************************************************************************++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+++++++==++++++=+++=+*++++++++++++++++=+++**+***+****###%##%%%####%#%%####**##%%##%#%%%%%%%@%%%#%%%%%%@%%%@@%%%%%%%%@%%@@@@@@@%@@@@@@@@@@@@@@@@%@@@@%%%%%@@@@@@%%@%%@@%@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
###################################*****************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++**+++++++++++++++++++++++++++=+==++++++++**+*++++++++*+********#*####%%%%%%%#%%%%##%###***####%%###%%#%@@%%%%%%%@@@%@@@%@@@%@%%%@@@@@@@@%@@@@@@@@@@@@@@@@@@@@%%@%@%%@@@@@@@@@@@@%%@@@@@@%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
########################################************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*****+++++++++++++=++++++++++++++=++++++++****#*******####**##%######%#%%%%%%%%@%%%%%%####*###%%%%%#%%%%@@%%@%@@@@@@@@@@@@@@%@@%@@@%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@%%%@@@@%@@@@@@@%@%@@@@%%@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
########################################*#*************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*++++*+*+*++++*+++++++*++++++++++++++*++*#*********+*########%%####%%#%%%%%%%%%%%%%%#%%%########%%%%@@%@@@@@@@@@@@@@@@@@@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@@@@@@@@@@@@@@@@@@@%@@%@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$